Jak przekonwertować JSON do YAML
- Wklej JSON lub otwórz plik – YAML pojawia się na bieżąco podczas pisania. Wybierz wcięcie z 2 lub 4 spacji.
- Aby przekonwertować dane w drugą stronę, przełącz kierunek na YAML → JSON i wklej YAML.
- Skopiuj wynik lub pobierz go jako plik
.yamllub.json.
JSON vs YAML – porównanie
| JSON | YAML | |
|---|---|---|
| Struktura | nawiasy klamrowe {} i kwadratowe [] | wcięcia i elementy listy z - |
| Ciągi znaków | zawsze w podwójnych cudzysłowach | cudzysłowy tylko w razie potrzeby |
| Komentarze | niedozwolone | # comment |
| Tekst wielowierszowy | sekwencje \n | bloki literalne z | |
| Typowe zastosowanie | API i wymiana danych | pliki konfiguracyjne |
YAML 1.2 jest nadzbiorem JSON, więc dokument JSON jest już poprawnym YAML-em. Konwerter zapisuje jednak dane w czytelniejszym stylu blokowym.
Wartości, które w YAML trzeba ująć w cudzysłowy
Niektóre słowa bez cudzysłowów zmieniają w YAML swój typ: yes, no, on i off są wartościami logicznymi w parserach YAML 1.1, 007 i 1e3 to liczby, a null lub ~ oznaczają null. To słynny „problem Norwegii” (Norway problem): kod kraju NO bez cudzysłowów zamienia się w false. Konwerter automatycznie ujmuje takie ciągi w cudzysłowy, więc YAML po wczytaniu daje dokładnie te same dane.
Obsługiwany YAML w kierunku YAML → JSON
Parser rozumie YAML używany w plikach konfiguracyjnych i API: mapowania i listy w stylu blokowym, ciągi znaków bez cudzysłowów, w apostrofach i w cudzysłowach, bloki wielowierszowe | i >, kolekcje inline [ ] i { }, komentarze oraz znacznik dokumentu ---. Kotwice (&), aliasy (*) i niestandardowe tagi są zgłaszane jako nieobsługiwane wraz z numerem wiersza. Z pliku zawierającego wiele dokumentów konwertowany jest tylko pierwszy.
Najczęściej zadawane pytania
Czy YAML jest nadzbiorem JSON?
YAML 1.2 został zaprojektowany jako nadzbiór JSON, więc praktycznie każdy plik JSON jest też poprawnym YAML-em. W drugą stronę to nie działa: YAML ma komentarze, kotwice i bloki wielowierszowe, których brakuje w JSON.
Czy komentarze są zachowywane przy konwersji YAML do JSON?
Nie. JSON nie obsługuje komentarzy, więc są one pomijane. Klucze, wartości i ich kolejność zostają zachowane.
Dlaczego mój YAML jest odrzucany?
Najczęstsze przyczyny to tabulatory użyte do wcięć (YAML dopuszcza tylko spacje), elementy tej samej listy lub mapy, które nie zaczynają się w tej samej kolumnie, oraz brak spacji po dwukropku. Komunikat błędu wskazuje numer wiersza.
Jakie typy otrzymują wartości YAML w JSON?
Zgodnie ze schematem core YAML 1.2: true/false stają się wartościami logicznymi, null i ~ stają się null, a zwykłe liczby – liczbami JSON, natomiast słowa takie jak yes pozostają ciągami znaków. Kody takie jak "007" ujmij w YAML w cudzysłowy, aby zachować je jako tekst.