Konwerter JSON na YAML
Zamień JSON na czytelny YAML
-
1Wprowadź dane
Wpisz treść, wklej tekst lub załaduj plik z dysku. -
2Kliknij przycisk
Narzędzie natychmiast przetworzy Twoje dane w przeglądarce. -
3Pobierz wynik
Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
return "Wynik gotowy w 0.1s";
}
Bezpieczny konwerter
--- "app": "webp" "version": 2 "debug": false "servers": - "web1" - "web2"
Oceń to narzędzie:
Powiązane narzędzia
Inne narzędzia, które mogą Ci się przydaćKonwerter JSON na YAML
JSON i YAML opisują te same struktury danych, ale YAML jest bardziej czytelny dla człowieka. Konwersja przydaje się przy plikach konfiguracyjnych i manifestach.
Czym się różnią?
| Cecha | JSON | YAML |
|---|---|---|
| Nawiasy | obowiązkowe | wcięcia |
| Komentarze | brak | dozwolone (#) |
| Czytelność | średnia | wysoka |
| Popularność | API, dane | konfiguracje, Docker, K8s |
Przykład
{
"app": "webp",
"servers": ["web1", "web2"]
}
Zamienia się na:
app: webp servers: - web1 - web2
Na co uważać?
- Wartości tekstowe mogą wymagać cudzysłowów (np. „true”, „123”).
- Wcięcia w YAML muszą używać spacji, nie tabulatorów.
- Konwerter zachowuje typy: liczby, booleany i null nie są cytowane.
Jak konwerter zamienia JSON na YAML
Konwersja przebiega w dwóch etapach. Najpierw parser JSON zamienia tekst wejściowy na drzewo wartości: obiekty, tablice, łańcuchy znaków, liczby, booleany i null. Dopiero potem serializer przechodzi to drzewo od korzenia w dół i zapisuje każdy poziom jako kolejne linie YAML, a głębokość zagnieżdżenia oddaje wcięciem.
Reguła mapowania jest stała: obiekt staje się mapowaniem, czyli parą klucz: wartość w jednej linii, a tablica sekwencją, w której każdy element poprzedza myślnik i spacja. Gdy elementem tablicy jest obiekt, myślnik występuje w linii pierwszego klucza, a pozostałe klucze tego obiektu trafiają do linii poniżej, z wcięciem o jeden poziom głębszym.
Ostatni etap to decyzja o cudzysłowach. Skalar zapisujemy bez nich tylko wtedy, gdy jego treść jest jednoznaczna dla parsera YAML. Wartości wyglądające jak liczba, boolean albo null, a także te zawierające znaki specjalne, trafiają w cudzysłów, żeby nie zmieniły typu. Liczby, booleany i null pochodzące z JSON-a pozostają bez cudzysłowów, bo ich typ jest znany z drzewa.
Konwersja krok po kroku
- Wklejasz tekst: {"app":"webp","port":8080,"debug":false,"tags":["json","yaml"],"limits":{"cpu":2,"ram":256}}. Parser sprawdza składnię i buduje drzewo wartości.
- W obiekcie głównym jest 5 kluczy: app, port, debug, tags i limits. Tablica tags ma 2 elementy, a zagnieżdżony obiekt limits 2 klucze. Razem daje to 7 wartości skalarnych i 3 kontenery.
- Każdy klucz obiektu głównego trafia do osobnej linii w postaci klucz: wartość, więc powstają linie app: webp, port: 8080 oraz debug: false.
- Klucz tags zapisuje się w osobnej linii, a jego dwa elementy wchodzą poziom niżej jako pozycje sekwencji z myślnikiem, z wcięciem dwóch spacji.
- Obiekt limits jest zagnieżdżony, więc jego klucze cpu i ram również dostają wcięcie dwóch spacji i nie są otoczone nawiasami klamrowymi.
- Wynik ma 9 linii: app: webp, port: 8080, debug: false, tags:, dwie pozycje z myślnikiem, limits:, cpu: 2 oraz ram: 256. Wartości 8080, 2, 256 i false nie mają cudzysłowów, bo ich typ jest jednoznaczny.
Mapowanie elementów JSON na zapis YAML
| Element w JSON | Zapis w YAML | Na co zwrócić uwagę |
|---|---|---|
| Obiekt {"a": 1} | a: 1 | Klucz i wartość w jednej linii, po dwukropku spacja |
| Tablica ["a", "b"] | dwie linie z myślnikiem | Każdy element poprzedza myślnik i spacja |
| Tablica obiektów | myślnik w linii pierwszego klucza | Pozostałe klucze obiektu niżej, z wcięciem |
| Łańcuch "webp" | webp | Bez cudzysłowów, gdy treść jest jednoznaczna |
| Łańcuch "123" | "123" | Cudzysłów chroni typ tekstowy przed odczytem jako liczba |
| Liczba 8080 | 8080 | Bez cudzysłowów, typ liczbowy zachowany |
| Boolean false | false | Bez cudzysłowów |
| null oraz puste kontenery | null, {}, [] | Brak wartości i kontenery puste zapisywane wprost |
Praktyczne wskazówki
- Trzymaj spacje, nie tabulatory — YAML nie dopuszcza znaku tabulacji w wcięciu. Jeśli poprawiasz wynik ręcznie, ustaw w edytorze zamianę tabulatora na spacje, inaczej plik przestanie się parsować.
- Sprawdź wartości podobne do typów — łańcuchy typu "true", "no", "123" albo "1.0" mogą zostać odczytane jako boolean lub liczba. Konwerter otacza je cudzysłowem, ale przy ręcznej edycji łatwo ten cudzysłów zgubić.
- Usuń komentarze przed wklejeniem — JSON ich nie przewiduje, więc zapisy // i /* */ wywołają błąd parsowania. Komentarze YAML z znakiem # dopisz dopiero po konwersji.
- Traktuj wynik jako punkt wyjścia — po konwersji możesz dodać kotwice, aliasy i komentarze, których JSON nie przenosi.
- Przy dużych plikach zostań lokalnie — konwersja w przeglądarce jest wygodna, ale dla bardzo dużych zbiorów szybszy i pewniejszy bywa skrypt uruchomiony na dysku.
Czego narzędzie nie uwzględnia
- Komentarze i kotwice YAML — jeśli konwertujesz w obie strony, komentarze oraz kotwice i aliasy znikną, bo JSON nie ma dla nich odpowiednika.
- Duplikaty kluczy — JSON z powtórzonym kluczem w tym samym obiekcie jest niejednoznaczny. Parsery zwykle zostawiają ostatnią wartość, a konwerter nie sygnalizuje konfliktu.
- Precyzja dużych liczb — identyfikatory i bardzo długie liczby całkowite mogą zostać wczytane jako liczby zmiennoprzecinkowe i stracić końcowe cyfry. Takie wartości bezpieczniej trzymać w JSON-ie jako łańcuchy.
- Różnice między YAML 1.1 i 1.2 — interpretacja zapisów takich jak yes, no czy on zależy od wersji i parsera docelowego. Wynik jest poprawny składniowo, ale nie w każdym narzędziu odczytany tak samo.
Najczęstsze pytania
Czy YAML zastępuje JSON?
W wielu konfiguracjach tak (Docker Compose, Kubernetes, CI). W API i wymianie danych nadal króluje JSON.
Dlaczego moja wartość dostała cudzysłów?
Bo wyglądałaby jak liczba, boolean lub zawiera znaki specjalne. Cudzysłów chroni typ i treść.
Czy mogę wkleić bardzo duży JSON?
Tak, ale bardzo duże pliki lepiej konwertować lokalnie — narzędzie działa w przeglądarce i ma ograniczenia praktyczne.
Jak przekonwertować JSON na YAML online?
Wklej tekst JSON w pole wejściowe i uruchom konwersję. Wynik pojawia się od razu w polu wyjściowym, gotowy do skopiowania i zapisania jako plik z rozszerzeniem .yaml lub .yml.
Czy konwersja zmienia typy danych?
Nie. Liczby, booleany i null zostają bez cudzysłowów, a łańcuchy, które wyglądałyby jak inny typ, dostają cudzysłów, żeby zachować swój charakter tekstowy.
Dlaczego w wyniku pojawiają się myślniki?
Myślnik poprzedza każdy element tablicy. To składnia sekwencji w YAML, odpowiednik nawiasów kwadratowych z JSON-a.
Ile spacji powinno mieć wcięcie w YAML?
Specyfikacja nie narzuca konkretnej liczby, wymaga tylko spójności w obrębie bloku. Konwerter używa dwóch spacji na poziom, co jest najczęstszą konwencją.
Czy mogę dodać komentarze do wygenerowanego pliku?
Tak, YAML dopuszcza komentarze po znaku #. Konwerter ich nie generuje, bo JSON nie przechowuje komentarzy, więc dopisz je ręcznie po zakończeniu konwersji.