Czym jest to narzędzie?
YAML to preferowany format dla większości nowoczesnych plików konfiguracyjnych — manifestów Kubernetes, Docker Compose, pipeline'ów GitHub Actions i GitLab CI, playbooków Ansible — ponieważ jest bardziej czytelny niż JSON dla osób ręcznie edytujących pliki: nie trzeba ujmować w cudzysłów większości kluczy, nie ma przecinków na końcu, którymi łatwo się pomylić, a komentarze są obsługiwane. JSON z kolei jest tym, co większość API i języków programowania natywnie generuje i przyjmuje.
To narzędzie łączy oba formaty za pomocą js-yaml, szeroko stosowanej implementacji specyfikacji YAML w JavaScripcie, dzięki czemu parsowanie i generowanie odbywa się według tych samych reguł, jakie zastosowałoby narzędzie obsługujące YAML, takie jak `kubectl` czy runner CI.
Konwersja JSON na YAML zamienia obiekty w wcięte bloki klucz: wartość, a tablice w elementy listy poprzedzone znakiem `-`. Konwersja YAML na JSON działa odwrotnie, a dodatkowo rozwiązuje specyficzne dla YAML skróty typów (takie jak niecytowane `true`, `null` czy liczby) na ich właściwe typy JSON.
Dlaczego warto go używać?
- Dwukierunkowość — konwertuj JSON na YAML lub YAML na JSON z jednego ekranu.
- Parsowanie i generowanie oparte na standardach dzięki js-yaml, dzięki czemu wynik odpowiada temu, czego oczekują prawdziwe narzędzia YAML (Kubernetes, systemy CI, Ansible).
- Obsługuje zagnieżdżone obiekty i tablice na dowolnej głębokości, konwertując między opartą na wcięciach strukturą YAML a nawiasami klamrowymi i kwadratowymi JSON-a.
- Poprawnie interpretuje skróty typów YAML — niecytowane wartości true/false, null i liczbowe stają się właściwymi typami JSON zamiast ciągów znaków.
- Kopiuj do schowka lub pobierz jako plik .json albo .yaml.
- 100% po stronie klienta — nic, co wkleisz, nigdzie nie jest wysyłane.
Jak używać
- Wybierz kierunek: „JSON → YAML” lub „YAML → JSON”.
- Wklej dane do pola wejściowego.
- Kliknij „Konwertuj”.
- Sprawdź wynik, a następnie skopiuj go lub kliknij „Pobierz”, aby zapisać plik.
Przykład
Wejście
{"name":"Alice","roles":["admin","editor"],"active":true}Wynik
name: Alice
roles:
- admin
- editor
active: true
Zwróć uwagę, jak tablica zamienia się w listę elementów z myślnikiem pod „roles”, a wartość logiczna pozostaje niecytowanym true zamiast stać się ciągiem znaków "true".
Praktyczne wskazówki
- Pisanie manifestu Kubernetes lub workflow GitHub Actions: naszkicuj strukturę jako JSON (wiele edytorów i narzędzi AI generuje JSON bardziej niezawodnie), a następnie przekonwertuj do YAML dla ostatecznego pliku.
- Debugowanie źle działającej konfiguracji YAML: przekonwertuj ją na JSON, aby dokładnie zobaczyć, które wartości są ciągami znaków, liczbami czy wartościami logicznymi — elastyczna składnia YAML może ukrywać niezgodności typów, które w JSON są oczywiste.
- Jeśli twój JSON zawiera klucze ze znakami specjalnymi lub zaczynające się od cyfry, js-yaml automatycznie ujmie je w cudzysłów w wyjściowym YAML, aby poprawnie sparsowały się z powrotem.
Dlaczego wymuszanie typów to najtrudniejsza część YAML
Największa zaleta YAML względem JSON pod względem użyteczności — brak konieczności ujmowania większości wartości w cudzysłów — jest jednocześnie największym źródłem subtelnych błędów. Klasycznym przykładem jest „problem Norwegii”: w YAML 1.1 (używanym przez wiele starszych parserów) niecytowana wartość `no` jest interpretowana jako wartość logiczna `false`, a nie ciąg znaków „no”, co w realnych przypadkach psuło konfiguracje zawierające kod kraju Norwegii. To narzędzie przestrzega specyfikacji YAML 1.2, która zawęziła zbiór niecytowanych wartości traktowanych jako logiczne do samych `true` i `false` (oraz ich wariantów wielkości liter), zmniejszając — choć nie eliminując całkowicie — tę klasę niespodzianek. W razie wątpliwości co do tego, jak wartość zostanie stypizowana, najbezpieczniejszym wyborem jest jawne ujęcie jej w cudzysłów w YAML.
Najczęściej zadawane pytania
Czy komentarze YAML są zachowywane przy konwersji do JSON i z powrotem?
Nie. JSON nie ma pojęcia komentarzy, więc konwersja YAML na JSON odrzuca wszelkie komentarze # ze źródła. Jeśli przekonwertujesz ten JSON z powrotem na YAML, komentarze nie pojawią się ponownie — to nieodłączne ograniczenie formatu, a nie błąd narzędzia.
Jak narzędzie obsługuje kotwice i aliasy YAML (& i *)?
Leżący u podstaw parser (js-yaml) rozwiązuje kotwice i aliasy przed wygenerowaniem JSON-a, więc plik YAML używający kotwic & i aliasów * do ponownego wykorzystania bloku danych zostanie przekonwertowany na JSON z tymi danymi w pełni rozwiniętymi w każdym miejscu, w którym są przywoływane.
Dlaczego moja liczba z YAML pojawiła się w JSON jako ciąg znaków, albo odwrotnie?
Jeśli wartość jest ujęta w cudzysłów w źródłowym YAML (np. version: "3.10"), celowo jest traktowana jako ciąg znaków — ma to znaczenie, ponieważ niecytowane liczby YAML, takie jak 3.10, mogą stracić końcowe zero przy parsowaniu jako liczba zmiennoprzecinkowa. Ujmij wartość w cudzysłów w źródłowym YAML, jeśli konkretnie potrzebujesz, aby była traktowana jako tekst.
Czy mogę przekonwertować plik YAML z wieloma dokumentami (rozdzielonymi za pomocą ---)?
To narzędzie konwertuje jeden dokument YAML na raz. Jeśli twój plik zawiera wiele dokumentów rozdzielonych znacznikami ---, konwertuj jedną sekcję na raz, albo usuń separatory i połącz je najpierw w jeden dokument, jeśli pasuje to do twojego przypadku użycia.
Czy moje dane są gdziekolwiek przesyłane?
Nie. Konwersja odbywa się całkowicie w twojej przeglądarce za pomocą biblioteki js-yaml — nic nie jest wysyłane na serwer, dzięki czemu bezpiecznie można jej używać z prawdziwymi plikami konfiguracyjnymi, w tym takimi zawierającymi wewnętrzne nazwy hostów lub szczegóły infrastruktury.