Jak używać
- Wklej YAML do pola wejściowego lub wypróbuj przykład.
- Wybierz wcięcie o szerokości 2 lub 4 spacji.
- Skopiuj JSON lub pobierz go jako plik .json.
Jak to działa
YAML jest parsowany przy użyciu otwartoźródłowej biblioteki yaml z wykorzystaniem schematu podstawowego YAML 1.2, którego oczekują nowoczesne narzędzia: yes, no, on i off pozostają ciągami znaków, a tylko true i false są wartościami logicznymi. Kotwice (&name) i aliasy (*name) są rozwijane, a klucze scalające << są stosowane; liczba rozwinięć aliasów jest ograniczona, więc celowo „eksplodujące” dokumenty są odrzucane zamiast zawieszać stronę.
Plik z kilkoma dokumentami oddzielonymi ciągiem --- staje się tablicą JSON z jednym elementem na dokument. Komentarze, kotwice i znaczniki nie mają odpowiednika w JSON i są pomijane; klucze zachowują swoją kolejność. Znaczniki czasu pozostają ciągami znaków. Liczby całkowite mające więcej niż około 15 cyfr tracą precyzję, jak w każdym JSON obsługiwanym w JavaScripcie.
Jeśli YAML jest nieprawidłowy, wyświetlany jest pierwszy błąd wraz z linią i kolumną, na przykład tabulator użyty do wcięcia lub brakujący nawias zamykający. Do konwersji w drugą stronę użyj konwertera JSON na YAML lub dwukierunkowego konwertera JSON ⇄ YAML.
Przykłady
Plik CI z kotwicami
Lista zadań, która ponownie wykorzystuje blok defaults z <<: *defaults, staje się JSON-em z wartościami defaults skopiowanymi do każdego zadania, dzięki czemu dokładnie widać, co otrzymuje każde zadanie.
Plik Kubernetes z wieloma dokumentami
Plik z zasobami Deployment i Service oddzielonymi przez --- staje się tablicą JSON z dwoma obiektami, gotową do użycia w kubectl lub jq.
Często zadawane pytania
Dlaczego yes pozostaje ciągiem znaków?
YAML 1.2, używany tutaj i przez większość obecnych narzędzi, traktuje tylko true i false jako wartości logiczne. Starsze parsery YAML 1.1 zamieniały yes, no, on i off na wartości logiczne, co powodowało wiele błędów.
Co dzieje się z komentarzami?
JSON nie ma komentarzy, więc są one pomijane. Same dane pozostają niezmienione.
Czy istnieje limit rozmiaru?
Tylko pamięć Twojej przeglądarki. Duże pliki są konwertowane po krótkiej przerwie podczas pisania, dzięki czemu strona pozostaje responsywna.
Prywatność
Konwersja odbywa się w całości w Twojej przeglądarce. Twoje dane YAML i JSON nie są przesyłane ani przechowywane.