JSON → YAML

Darmowy konwerter online JSON→YAML. Konwertuj JSON do YAML 1.2 jednym kliknięciem, dostosuj wcięcia, automatycznie napraw błędy składni JSON, generuj pliki konfiguracyjne YAML dla Kubernetes, Docker Compose, GitHub Actions. Całe przetwarzanie lokalnie w przeglądarce.

Powiązane Rekomendacje

Czym jest YAML? Po co konwertować JSON na YAML?

YAML (YAML Ain't Markup Language — «YAML nie jest językiem znaczników») to przyjazny człowiekowi format serializacji danych, zaprojektowany, aby pliki konfiguracyjne były łatwe do czytania i pisania. YAML 1.2 to obecna stabilna wersja, zaproponowana przez Clarka Evansa w 2001 roku. Dziś YAML jest szeroko stosowany w ustawieniach praktycznie wszystkich głównych narzędzi DevOps: Kubernetes, Docker Compose, GitHub Actions, Ansible, CircleCI, Prometheus.

JSON i YAML są w relacji nadzbioru (JSON jest podzbiorem YAML). Konwersja ma ogromne znaczenie praktyczne: ① zwiększona czytelność — YAML używa wcięć zamiast nawiasów klamrowych i przecinków; ② obsługa komentarzy — YAML obsługuje # komentarze; ③ obsługa wielu dokumentów — YAML obsługuje separator ---; ④ automatyczne rozpoznawanie typów.

YAML ma trzy podstawowe struktury: ① skalar — pojedyncza wartość; ② sekwencja — odpowiednik tablicy JSON, oznaczana przez -; ③ mapowanie — odpowiednik obiektu JSON, oznaczane key: value. Obsługiwane są również struktury zaawansowane: kotwice i referencje (&kotwica/*referencja), styl blokowy (|) i zwinięty (>).

Proces konwersji to przemapowanie struktury danych: JSON.parse() analizuje tekst do AST, funkcja dump() z js-yaml rekurencyjnie przechodzi przez węzły. Cały proces jest czysto lokalny, wynik w 100% kompatybilny ze standardowymi parserami YAML.

Przypadki użycia

  • Tworzenie manifestów Kubernetes: konwersja JSON z szablonów Helm i CI/CD na standardowy Deployment/Service YAML
  • Konfiguracja Docker Compose: konwersja JSON z platform kontenerowych na czytelny docker-compose.yml
  • GitHub Actions / GitLab CI: konwersja JSON ze skryptów automatyzacji na YAML pipeline
  • Tworzenie Ansible Playbook: konwersja JSON orkiestracji zadań na format Ansible
  • Unifikacja konfiguracji mikroserwisów: migracja konfiguracji JSON do repozytorium YAML
  • Generowanie YAML z Swagger/OpenAPI: konwersja JSON Schema na specyfikację OpenAPI YAML
  • Nauka składni YAML: wizualna obserwacja przekształcania struktur
  • Porównywanie formatów: szybka konwersja między JSON i YAML w celu wyboru optymalnego formatu

Jak Używać

  1. Wklej JSON do lewego edytora lub prześlij plik .json/.txt lub kliknij «Przykład» aby załadować próbkę
  2. Narzędzie automatycznie konwertuje w czasie rzeczywistym zgodnie z YAML 1.2, wynik po prawej. Wcięcia przełączane w menu rozwijanym
  3. Przy błędach składni JSON pojawi się przycisk «Napraw JSON» — kliknij, aby automatycznie naprawić
  4. W razie potrzeby eskalowania Unicode lub ciągów użyj przycisków na dolnym pasku narzędzi
  5. Skopiuj wynik przyciskiem «Kopiuj» lub pobierz jako output.yaml

Funkcje

  • Wyjście YAML 1.2: zgodne z oficjalną specyfikacją YAML 1.2, bezpośrednie użycie w Kubernetes, Docker Compose, GitHub Actions, Ansible
  • Dostosowywanie wcięć: przełączanie 2/4 spacji dla różnych stylów kodowania (YAML oficjalnie zaleca 2 spacje)
  • Automatyczna naprawa JSON: wbudowany silnik tryFixJSON wykrywa i naprawia wiszące przecinki, pojedyncze cudzysłowy i komentarze przed konwersją
  • Dwukierunkowa konwersja Unicode: eskalowanie/deeskalowanie \uXXXX jednym kliknięciem
  • Eskalowanie/deeskalowanie ciągów: dodawanie lub usuwanie znaków ucieczki dla cudzysłowów, ukośników odwrotnych i znaków nowej linii
  • Formatowanie i kompresja JSON: formatowanie z wcięciami lub kompresja do jednej linii w lewym panelu
  • Edycja dwukierunkowa w czasie rzeczywistym: wklej JSON po lewej — YAML pojawia się natychmiast po prawej
  • Przesyłanie i pobieranie plików: obsługa .json/.txt, pobieranie jako config.yaml lub output.yaml
  • Skróty klawiaturowe: Shift+Cmd/Ctrl+F formatuj, C kompresuj, U Unicode, Z de-unicode, / eskaluj, . deeskaluj, O prześlij, D pobierz, K wyczyść
  • Przeciągane panele i historia: regulowana szerokość paneli, automatyczne zapisywanie 200 ostatnich wpisów
  • Przejście do formatera JSON: po konwersji jeden klik, aby przejść do formatera JSON
  • Całkowicie lokalne przetwarzanie: całe parsowanie i konwersja w JavaScript przeglądarki, poufne ustawienia nie są przesyłane

Często Zadawane Pytania

Jak przekonwertować JSON na format YAML?

Wklej JSON do lewego edytora — narzędzie automatycznie przekształci go w czytelny format zgodnie z YAML 1.2. Pary klucz-wartość staną się key: value, zagnieżdżone obiekty — hierarchią wcięć, tablice — składnią `- element`. Po konwersji można skopiować lub pobrać jako .yaml. W przypadku błędów składni JSON narzędzie spróbuje je automatycznie naprawić.

Do jakich scenariuszy nadają się YAML i JSON?

YAML — do czytelnych dla człowieka konfiguracji (Kubernetes, Docker Compose, GitHub Actions, Ansible, CI/CD). JSON — do parsowania maszynowego i wymiany danych (REST API, mikroserwisy). Konfiguracje — YAML, transmisja danych — JSON. Narzędzie obsługuje również odwrotną konwersję YAML→JSON.

Które wcięcia są lepsze — 2 czy 4 spacje?

YAML oficjalnie zaleca 2 spacje (styl Pythona). To domyślny standard dla Kubernetes, Docker Compose, GitHub Actions. Niektóre projekty używają 4 spacji. Narzędzie umożliwia swobodne przełączanie bez ponownej konwersji.

Czy wygenerowany YAML można użyć bezpośrednio w Kubernetes?

Tak. Narzędzie ściśle przestrzega specyfikacji YAML 1.2, a wyjście spełnia wymagania składniowe Kubernetes (kubectl apply). Zapisz jako deployment.yaml lub service.yaml i zastosuj przez kubectl apply -f. YAML jest wrażliwy na wcięcia — nie dodawaj zbędnych spacji ani tabulacji podczas kopiowania.

Czy obsługiwane jest generowanie multi-document YAML (rozdzielane przez ---)?

Obecna wersja koncentruje się na konwersji pojedynczego dokumentu. Jeśli JSON jest tablicą niezależnych obiektów, wyjście będzie w formacie listy. Dla multi-document YAML dodaj separatory --- ręcznie po konwersji lub użyj formattera YAML.

Czy chińskie/specjalne znaki w JSON ulegają zniekształceniu?

Nie. Narzędzie w pełni obsługuje UTF-8, w tym wszystkie znaki Unicode. Aby przekonwertować na format \uXXXX, użyj przycisku «Unicode», dla odwrotnego — «De-Unicode».

Jak obsługiwane są cudzysłowy i znaki nowej linii w ciągach JSON?

YAML obsługuje wiele stylów ciągów: bez cudzysłowów, podwójne cudzysłowy (z sekwencjami escape), pojedyncze cudzysłowy (literały), styl blokowy | (zachowuje znaki nowej linii), styl zwinięty > (znaki nowej linii w spacje). Narzędzie domyślnie wypisuje podwójne cudzysłowy.

Czy wszystkie wartości stają się ciągami po konwersji?

Domyślnie narzędzie zachowuje oryginalne typy JSON: liczby jako liczby YAML, wartości logiczne jako true/false, null jako null lub ~. Aby wymusić konwersję wszystkiego na ciągi, opakuj wartości w cudzysłowy w źródłowym JSON.

Czy konfiguracje są przesyłane na serwer podczas lokalnej konwersji?

Nie. Całe parsowanie JSON, generowanie YAML, eskalowanie ciągów i konwersja Unicode odbywają się lokalnie w silniku JavaScript przeglądarki. Dane nie są przesyłane przez sieć. Działa offline. Bezpieczne dla danych poufnych.

Rozwiązywanie problemów

Błąd «Unexpected token» w JSON — co robić?

To błąd składni JSON. Częste przyczyny: wiszący przecinek, pojedyncze cudzysłowy, klucze bez cudzysłowów, komentarze. Kliknij «Napraw JSON» — narzędzie automatycznie spróbuje uzupełnić przecinki, dodać cudzysłowy i usunąć komentarze.

kubectl apply zgłasza «yaml: invalid character»?

Zwykle to błąd wcięć. Sprawdź: wszystkie wcięcia to spacje, liczba spacji jest jednakowa na tym samym poziomie, wcięcia odpowiadają poziomowi zagnieżdżenia.

Znaki nowej linii w YAML zamieniły się na \n?

Domyślnie \n w JSON jest escapowane jako \n w YAML. Dla zachowania rzeczywistych znaków nowej linii zmień styl na blokowy (|) ręcznie lub użyj «Deeskaluj».

null zamienił się na ~ — czy to normalne?

YAML używa ~ lub null dla pustych wartości, oba są równoważne.

Słownik

YAML
YAML Ain't Markup Language (rekurencyjny akronim), przyjazny człowiekowi format serializacji danych. De facto standardowy język konfiguracji dla narzędzi DevOps.
Wcięcie (Indentation)
YAML wyraża hierarchię przez wcięcia (tylko spacje, bez tabulacji). Błędy wcięć to najczęstszy problem YAML.
Sekwencja (Sequence)
Reprezentacja tablicy w YAML, każdy element oznaczany - element, odpowiednik tablicy JSON.
Mapowanie (Mapping)
Reprezentacja obiektu w YAML, pary klucz-wartość oznaczane key: value, odpowiednik obiektu JSON.
Styl blokowy (Block Scalar |)
Zapis wieloliniowy w YAML, identyfikator |, zachowuje wszystkie znaki nowej linii i wcięcia.
Styl zwinięty (Folded Scalar >)
Zapis wieloliniowy w YAML, identyfikator >, pojedyncze znaki nowej linii zamieniane na spacje.
YAML 1.2
Obecna stabilna wersja specyfikacji YAML. Narzędzie jest zgodne z wersją 1.2.2.
Multi-document YAML
YAML obsługuje wiele dokumentów w jednym pliku, rozdzielonych ---.
Kubernetes YAML
Format YAML manifestów Kubernetes, zawiera cztery obowiązkowe pola: apiVersion, kind, metadata, spec.
Problem norweski (YAML 1.1)
Specyfikacja YAML 1.1 interpretowała NO/On/Off jako wartość logiczną false. Poprawione w YAML 1.2.

Tabela mapowania typów JSON na reprezentację YAML

Narzędzie konwertuje typy JSON na YAML według następujących reguł:

Typ JSONReprezentacja YAMLUwaga
stringname: "Alice"Domyślnie bez cudzysłowów, znaki specjalne wymagają podwójnych cudzysłowów
integerport: 8080YAML automatycznie rozpoznaje typ liczbowy
booleanenabled: trueTylko małe litery true/false
nullvalue: null lub ~YAML reprezentuje pustą wartość przez null lub tyldę
array- item1\n- item2Każda linia zaczyna się od -

Porównanie stylów ciągów YAML

YAML obsługuje 6 sposobów zapisu ciągów:

StylPrzykład składniScenariusz
Bez cudzysłowówname: AliceProste ciągi
Podwójne cudzysłowyname: "Alice"Znaki specjalne, obsługa \n
Styl blokowybio: |\n line1\n line2Zachowanie wszystkich znaków nowej linii

Privacy & Security

Całe parsowanie JSON, generowanie YAML, eskalowanie ciągów, konwersja Unicode, automatyczna naprawa JSON i odczyt plików odbywają się lokalnie w silniku JavaScript przeglądarki. Zawartość JSON i wygenerowane konfiguracje YAML nie są przesyłane przez sieć na serwer. Poufne dane można bezpiecznie konwertować. Historia lokalna przechowywana jest tylko w localStorage przeglądarki.

Authoritative References