Pamiętaj: Wyniki kalkulatorów mają charakter poglądowy. Dokładamy wszelkich starań, by były poprawne, ale zawsze weryfikuj je z fachowcem.

Przejdź do treści

YAML ↔ JSON – konwerter i walidacja

Wklej YAML lub JSON, wybierz kierunek konwersji i sprawdź wynik bez zmiany typów danych. Narzędzie wykrywa błędy wcięć, duplikaty kluczy, niebezpieczne stringi oraz pokazuje ścieżki danych.

Dane wejściowe i ustawienia

Konwersja działa lokalnie w przeglądarce. Przy YAML narzędzie celowo odrzuca konstrukcje, których nie może bezpiecznie odwzorować w JSON.
YAML 1.2 • JSON
Auto rozpoznaje JSON po pierwszym znaku { lub [.
Przykłady pomagają sprawdzić zachowanie typów przed użyciem własnych danych.

Formatowanie wyniku

Zakres bezpiecznej konwersji: mapy, listy, zagnieżdżenia, komentarze, wartości logiczne, liczby, null, pojedyncze i podwójne cudzysłowy oraz proste kolekcje [] / {}. Anchory, aliasy, tagi, strumienie wielodokumentowe i bloki |/> są odrzucane z komunikatem zamiast konwertowane „na oko”.

Wynik konwersji

Znaki wejścia
0
Znaki wyniku
0
Ścieżki danych
Brak ścieżek do pokazania.
Kontrola typów:
Wklej dane, aby sprawdzić konwersję.

Konwersja YAML i JSON bez cichej zmiany danych

YAML i JSON opisują podobne struktury: mapy/obiekty, listy/tablice oraz wartości skalarne. Największy problem przy konwersji nie polega jednak na zamianie nawiasów na wcięcia, lecz na zachowaniu typów i struktury.

Ten konwerter pilnuje m.in. stringów wyglądających jak liczby lub wartości logiczne, duplikatów kluczy, komentarzy oraz pustych kolekcji. Jeśli YAML używa konstrukcji, których nie da się bezpiecznie odwzorować w prostym JSON, narzędzie pokazuje błąd zamiast generować pozornie poprawny wynik.

YAML a JSON – co powinno pozostać takie samo?

Struktura

Mapa YAML powinna stać się obiektem JSON, lista YAML – tablicą JSON, a kolejne poziomy zagnieżdżenia muszą pozostać w tym samym miejscu.

Typ wartości

12 jako liczba, true jako boolean i "0012" jako tekst nie są równoważne. Konwerter powinien zachować tę różnicę w obie strony.

Jakie konstrukcje YAML obsługuje kalkulator?

Obsługiwany jest praktyczny podzbiór YAML 1.2 potrzebny przy typowych plikach konfiguracyjnych i wymianie danych z JSON:

  • mapy klucz: wartość i listy rozpoczynane przez -,
  • zagnieżdżone mapy i listy, także listy obiektów,
  • listy i mapy przepływowe, np. [1, 2, 3] oraz {a: 1, b: 2},
  • null, boolean, liczby oraz stringi w pojedynczym i podwójnym cudzysłowie,
  • komentarze rozpoczynane przez # zgodnie z regułą separatora,
  • puste kolekcje [] i {}.

Narzędzie nie udaje pełnego interpretera całego standardu. Anchory i aliasy (&/*), tagi, złożone klucze, scalanie <<, wiele dokumentów oraz bloki wieloliniowe |/> są odrzucane z jasnym komunikatem.

Najbardziej zdradliwe są typy: „0012”, „true” i „null”

W YAML 1.2 niecytowane wartości mogą zostać rozpoznane jako liczba, boolean albo null. Dlatego podczas konwersji JSON → YAML string "0012" musi pozostać w cudzysłowie. To samo dotyczy tekstów "true", "false" i "null".

{"id":"0012","active":"true"}

id: "0012"
active: "true"

Z kolei yes, no, on i off pozostają zwykłymi stringami w schemacie YAML 1.2 Core. To ważna różnica względem starszych interpretacji YAML 1.1.

Przykład: URL z # i string z zerami wiodącymi

Wejście YAML:

url: https://example.com/page#sekcja
id: "0012"
status: on
empty: []

Poprawny wynik JSON zachowuje fragment adresu po #, identyfikator jako string, on jako string i pustą tablicę:

{"url":"https://example.com/page#sekcja","id":"0012","status":"on","empty":[]}

Duplikaty kluczy – dlaczego kalkulator je blokuje?

Mapa YAML nie powinna zawierać dwóch identycznych kluczy, a obiekt JavaScript/JSON i tak zachowałby tylko jedną wartość. Ciche nadpisanie jest szczególnie niebezpieczne w konfiguracjach.

timeout: 10
timeout: 30

Zamiast wybrać ostatnią wartość 30, konwerter zgłasza duplikat i wymaga poprawienia źródła.

Najczęstsze błędy YAML i ich znaczenie

ProblemCo się dziejeJak poprawić
Tabulator w wcięciuStruktura staje się niejednoznacznaUżyj spacji do wcięć
Duplikat kluczaJSON nie zachowa obu wartościZmień nazwę lub usuń duplikat
String 0012 bez cudzysłowuMoże zostać odczytany jako liczbaUżyj "0012"
Anchor / aliasJSON nie ma bezpośredniego odpowiednika mechanizmu referencjiRozwiń wartość przed konwersją
| lub >To wieloliniowy skalar YAMLW tym narzędziu zamień go na cytowany string z \n

Dla ucznia i studenta: sprawdź round-trip

Zadanie

Masz JSON {"code":"0012","enabled":true,"items":[]}. Zamień go na YAML, a następnie otrzymany YAML ponownie na JSON. Czy wartości mają te same typy?

Pokaż rozwiązanieUkryj rozwiązanie

Bezpieczny YAML to:

code: "0012"
enabled: true
items: []

Po konwersji wstecz code nadal jest stringiem, enabled booleanem, a items pustą tablicą. To właśnie poprawny round-trip.

Ciekawostka

Znak # nie zawsze oznacza komentarz. W zwykłym skalarze YAML komentarz zaczyna się wtedy, gdy # jest poprzedzony separatorem. Dlatego adres https://example.com/page#sekcja powinien pozostać cały.

Wskazówka od KalkulatorXXL

Po konwersji konfiguracji zawsze wykonaj szybki round-trip: JSON → YAML → JSON albo YAML → JSON → YAML. Jeśli typy, puste listy i kluczowe ścieżki pozostają takie same, znacznie zmniejszasz ryzyko błędu wdrożeniowego.

Powiązane narzędzia

FAQ – YAML ↔ JSON (konwerter i walidacja)

Tak. Dla JSON zobaczysz błąd parsera, a dla YAML komunikat z numerem linii. Najczęstsze problemy to brak dwukropka, niespójne wcięcia oraz użycie tabulatorów.

Obsługiwane są typowe mapy i listy, wcięcia oraz proste typy: string, liczba, boolean i null. Bardzo zaawansowane konstrukcje YAML mogą wymagać ręcznej korekty.

Tak. Opcja minifikacji generuje JSON bez wcięć.

Ścieżki (np. app.features[0].name) pomagają zweryfikować strukturę po konwersji i szybciej znaleźć wartości.

Gdy tekst wygląda jak liczba (np. 0012) albo zawiera znaki specjalne. Możesz też włączyć cudzysłów dla wszystkich stringów.

W YAML wcięcia budują strukturę. Zmiana liczby spacji może zmienić wynikową mapę/listę.

Tak. Konwersja i walidacja odbywają się po stronie przeglądarki (JS).
Źródło standardu: YAML 1.2.2 Specification.

Ostatnia aktualizacja kalkulatora: 30.08.2026.