Konwerter YAML na JSON
Wklej YAML i odbierz sformatowany lub zwarty JSON z rozpoznanymi typami i błędem wskazanym z numerem linii.
-
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";
}
Wcięcia tylko spacjami. Nie wklejaj prawdziwych haseł ani kluczy API; treść nie trafia do historii użycia.
Kluczy i elementów
Głębokość
Linie JSON
Rozmiar YAML
Rozmiar JSON
JSON
| Typ wartości | Liczba |
|---|---|
| Tekst | 7 |
| Liczba całkowita | 1 |
| Liczba dziesiętna | 1 |
| Wartość logiczna (true/false) | 1 |
| Lista | 1 |
| Obiekt (mapa) | 4 |
Ściąga: jak YAML zamienia się w JSON
| YAML | JSON | Co się dzieje |
|---|---|---|
| imie: Anna | {"imie":"Anna"} | Mapa: „klucz: wartość” to pole obiektu. |
| tags: [a, b] | {"tags":["a","b"]} | Krótka lista w jednej linii. |
| port: 5432 | {"port":5432} | Liczba całkowita. |
| ver: 3.10 | {"ver":3.1} | Zero na końcu ginie. Aby zachować „3.10”, wpisz je w cudzysłowie. |
| kod: 00123 | {"kod":"00123"} | Zera wiodące: wartość zostaje tekstem. |
| ok: true | {"ok":true} | Wartość logiczna (też false). |
| pusto: | {"pusto":null} | Brak wartości daje null. |
| flaga: yes | {"flaga":"yes"} | Tylko true i false są logiczne; yes, no, on, off zostają tekstem. |
| cyt: "5432" | {"cyt":"5432"} | Cudzysłów wymusza tekst. |
Jak to liczymy
Konwerter czyta wcięcia (same spacje). Linia „klucz: wartość” staje się polem obiektu, linia „- element” pozycją listy, a głębsze wcięcie zagnieżdżeniem. Wartość trafia do JSON jako: true/false – wartość logiczna, ~ lub null – null, liczba bez zer wiodących – liczba, reszta – tekst. Komentarze po „ #” są pomijane.
Twój dokument: 14 elementów, głębokość 3, JSON ma 363 B.
Typowe pułapki
- Wersja 3.10 zamienia się w liczbę 3.1 – wpisz ją w cudzysłowie.
- Kody z zerami wiodącymi (00123) zostają tekstem.
- yes, no, on, off to tekst, a nie wartości logiczne.
- Tabulator w wcięciu to błąd – użyj spacji.
- Powtórzony klucz: zostaje ostatnia wartość.
Zakres konwertera
Obsługiwane: mapy, listy, zagnieżdżenia, cudzysłowy, komentarze, krótkie [a, b] i {a: 1}, nagłówek ---. Poza zakresem: aliasy i kotwice (&, *), tagi (!!), bloki wieloliniowe (| i >), wiele dokumentów. Dla takich konstrukcji użyj pełnego parsera YAML w swoim języku.
Oceń to narzędzie:
Powiązane narzędzia
Inne narzędzia, które mogą Ci się przydaćKonwerter YAML na JSON
YAML jest czytelniejszy dla ludzi, JSON — łatwiejszy w programach. Ten konwerter YAML na JSON zamienia jeden na drugi bez instalowania narzędzi: wklejasz plik konfiguracyjny, a obok od razu widzisz JSON, liczbę elementów, głębokość zagnieżdżenia i wykryte typy wartości.
Wynik może być sformatowany (wcięcie 2 spacje, 4 spacje lub tabulator) albo zwarty w jednej linii. Opcjonalnie posortujesz klucze map alfabetycznie albo zachowasz wszystkie wartości jako tekst. Gotowe przykłady pokazują typowe pliki: prosty, zagnieżdżony, Docker Compose i ConfigMap z Kubernetes.
Obsługiwana składnia
| Element | Przykład |
|---|---|
| Mapa | klucz: wartość |
| Lista | - element |
| Zagnieżdżenie | wcięcie spacjami, np. o 2 spacje |
| Krótki zapis w jednej linii | tags: [a, b], limits: {cpu: 1, mem: 512} |
| Komentarz | # tekst na początku linii albo po spacji |
| Cudzysłowy | "tekst", 'tekst' |
| Typy | liczby, true/false, null i ~ |
| Nagłówek dokumentu | --- w pierwszej linii |
Przykład
app:
name: MyApp
features:
- auth
- api
Daje JSON (przy wyłączonej opcji „Sformatowany JSON”):
{"app":{"name":"MyApp","features":["auth","api"]}}
Jak działa konwerter YAML na JSON
Parser czyta dokument linia po linii i na podstawie wcięcia buduje drzewo zależności. Wcięcie wyznacza poziom zagnieżdżenia, a dwukropek rozdziela klucz od wartości. Linia rozpoczęta myślnikiem i spacją jest elementem listy i trafia do klucza, który stoi bezpośrednio nad nią. Lista może mieć to samo wcięcie co jej klucz (porty:, a pod spodem - 80) albo głębsze.
Kolejność operacji jest stała: odczyt linii, odrzucenie pustych wierszy i komentarzy, ustalenie poziomu na podstawie liczby spacji, przypisanie węzła do rodzica, rozpoznanie typu wartości, a na końcu serializacja całej struktury do formatu JSON. Typ rozpoznawany jest po zapisie wartości, a nie po nazwie klucza, dlatego ta sama nazwa klucza może raz nieść liczbę, a raz tekst.
Wynik różni się od wejścia przede wszystkim tym, że JSON nie zna komentarzy ani wcięć jako elementu składni. Wszystkie klucze trafiają do cudzysłowów, a wartości liczbowe, logiczne i puste zachowują swój typ. Kolejność kluczy pokrywa się z kolejnością w pliku wejściowym, chyba że włączysz „Sortuj klucze map” (sortowanie naturalne, kolejność elementów list zostaje bez zmian). Polskie znaki i ukośniki trafiają do wyniku wprost, bez zamiany na sekwencje \u0105 czy \/. Wynik odświeża się sam chwilę po ostatniej zmianie w polu, a przycisk „Konwertuj na JSON” przelicza go jawnie.
Przykład krok po kroku
- Przygotuj dokument. Klucz najwyższego poziomu to
serwis, a pod nim stoją cztery klucze potomne:nazwa: api,wersja: 2.1,aktywne: trueorazporty:z dwoma elementami listy,- 80i- 443. - Wklej treść do pola. Dokument zajmuje siedem linii bez pustych wierszy. Wcięcia wykonaj spacjami: klucze potomne cofnięte o dwa znaki względem rodzica, elementy listy o kolejne dwa.
- Sprawdź poziomy.
serwisleży na poziomie zerowym, cztery klucze potomne na pierwszym, a elementy listy pod kluczemportyna drugim. Kafelek „Głębokość” pokaże 3: obiekt główny, obiektserwisi listę portów. - Ustal typy.
2.1to liczba dziesiętna,80i443to liczby całkowite,trueto wartość logiczna, aapizwykły tekst. Tabela „Wykryte typy wartości” pokaże: tekst 1, liczba całkowita 2, liczba dziesiętna 1, wartość logiczna 1, lista 1, obiekt 2. - Odczytaj wynik. Kafelek „Kluczy i elementów” pokaże 7: klucz
serwis, cztery klucze potomne i dwa elementy listy. Sformatowany JSON z wcięciem 4 spacji ma 11 linii, a w wersji zwartej mieści się w jednej:{"serwis":{"nazwa":"api","wersja":2.1,"aktywne":true,"porty":[80,443]}}.
Mapowanie elementów YAML na JSON
| Element w YAML | Odpowiednik w JSON | Na co uważać |
|---|---|---|
| Mapa | Obiekt w nawiasach klamrowych | Linia bez dwukropka kończy konwersję błędem z numerem linii |
| Lista | Tablica w nawiasach kwadratowych | Po myślniku musi być spacja: -auth nie jest elementem listy |
| Zagnieżdżenie wcięciem | Głębszy obiekt albo tablica | Tabulator w dowolnym miejscu linii daje błąd |
| Komentarz ze znakiem # | Brak odpowiednika | Znak # bez spacji przed nim, np. w strona#sekcja, zostaje częścią wartości |
| Wartość logiczna true lub false | Wartość logiczna bez cudzysłowów | True też działa; yes, no, on, off zostają tekstem |
| Wartość pusta null | Wartość null | null, ~ i sam klucz: bez wartości dają ten sam wynik |
| Liczba całkowita | Liczba bez cudzysłowów | Zera wiodące (00123), znak plus, zapis wykładniczy i ponad 15 cyfr dają tekst |
| Liczba dziesiętna | Liczba z kropką | Przecinek daje tekst; końcowe zero ginie: 3.10 zmienia się w 3.1 |
| Tekst w cudzysłowie | Tekst | Sposób na wymuszenie tekstu, np. "5432" albo '3.10' |
Praktyczne wskazówki
- Ustaw edytor na spacje. Wyłącz wstawianie tabulatorów, zanim zaczniesz pisać YAML. Jeden tabulator wystarczy, żeby konwersja zatrzymała się z błędem wskazującym linię.
- Trzymaj stałe wcięcie na każdym poziomie. Elementy tego samego poziomu muszą mieć identyczne wcięcie. Linia wcięta głębiej, nad którą nie stoi
klucz:bez wartości, kończy się komunikatem o nieoczekiwanym wcięciu. - Konwertuj po każdej większej zmianie. Zamiana na JSON pokazuje strukturę bez wcięć, więc łatwiej zauważysz, że jakiś klucz wylądował o poziom wyżej, niż powinien.
- Sprawdzaj typy w wyniku. Jeśli liczba trafiła do cudzysłowów, w YAML była w cudzysłowie, miała zera wiodące albo zawierała znak, którego parser nie uznaje za część liczby. Tabela wykrytych typów pod wynikiem pozwala to wyłapać bez czytania całego JSON.
- Wartości dla ConfigMap. Pole
dataw Kubernetes przyjmuje wyłącznie tekst, więc liczby itrueujmij w cudzysłowy albo włącz „Zachowaj wszystkie skalary jako tekst”. Ta opcja zamienia w tekst także krótkie listy[a, b], a samklucz:nadal daje null. - Usuwaj komentarze przed konwersją. Skoro JSON ich nie przechowuje, lepiej mieć świadomość, co wypadnie z dokumentu, zamiast szukać brakującej informacji w wyniku.
Ograniczenia i źródła błędów
- To uproszczony parser. Obsługuje bezpieczny podzbiór YAML: mapy, listy, zagnieżdżenia, cudzysłowy, komentarze i krótkie kolekcje w jednej linii. Konstrukcji spoza tego zakresu nie zgaduje, tylko zgłasza błąd z numerem i treścią linii.
- Brak obsługi kotwic, aliasów i tagów. Zapisy
&baza,*baza,<<: *bazaoraz jawne tagi typów (zaczynające się od wykrzyknika) są wyłączone ze względów bezpieczeństwa, dlatego powtórzone fragmenty trzeba rozpisać ręcznie. - Wieloliniowe stringi i bloki tekstowe. Bloki
|i>kończą się błędem. Tekst na kilka linii zapisz w jednej linii w podwójnym cudzysłowie, z\nw miejscu złamania. - Jeden dokument naraz. Separator
---jest dopuszczalny tylko na początku; kolejny oznacza wiele dokumentów i daje błąd. Pliki Kubernetes z kilkoma zasobami konwertuj po jednym. - Powtórzone klucze. Gdy ten sam klucz wystąpi dwa razy na jednym poziomie, zostaje ostatnia wartość, a pod wynikiem pojawia się ostrzeżenie.
- Limity. Do 256 KB tekstu w kodowaniu UTF-8 i najwyżej 512 poziomów zagnieżdżenia. Niespójne wcięcia, brak dwukropka przy kluczu albo myślnik bez spacji to najczęstsze przyczyny komunikatu o błędzie.
Najczęstsze pytania
Dlaczego konwerter zgłasza błąd przy poprawnie wyglądającym pliku?
Najczęściej winne są tabulatory w miejscu spacji, niespójne wcięcia na tym samym poziomie albo brak dwukropka po kluczu. Komunikat podaje numer linii i jej treść; błąd pojawia się też przy konstrukcjach spoza zakresu, np. kotwicy albo bloku |.
Czy obsługuje wieloliniowe stringi?
Nie, to uproszczony parser. Zapisz tekst w jednej linii w cudzysłowie, a dla pełnej specyfikacji YAML użyj dedykowanej biblioteki w swoim języku.
Czym są kotwice YAML?
To mechanizm wielokrotnego użycia fragmentów: &nazwa oznacza fragment, a *nazwa wstawia go w innym miejscu. Ten konwerter ich nie rozwija i zgłasza błąd.
Czy wklejony YAML jest gdzieś zapisywany?
Konwersja wykonuje się na serwerze w trakcie wpisywania, ale treść dokumentu nie trafia do historii użycia; zapisywany jest tylko tryb i liczba elementów. Mimo to nie wklejaj prawdziwych haseł ani kluczy API.
Czym różni się YAML od JSON?
YAML stawia na czytelność dla człowieka: używa wcięć, myślników i komentarzy. JSON celowo rezygnuje z komentarzy i formatowania na rzecz jednoznacznej składni, którą łatwiej parsować programom.
Dlaczego liczba w wyniku jest tekstem?
Typ zależy od zapisu wartości, nie od nazwy klucza. Liczba w cudzysłowie, z zerem wiodącym, z przecinkiem albo dłuższa niż 15 cyfr trafia do wyniku jako tekst, co chroni kody i identyfikatory przed zniekształceniem.