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ć
- Wklej JSON do lewego edytora lub prześlij plik .json/.txt lub kliknij «Przykład» aby załadować próbkę
- Narzędzie automatycznie konwertuje w czasie rzeczywistym zgodnie z YAML 1.2, wynik po prawej. Wcięcia przełączane w menu rozwijanym
- Przy błędach składni JSON pojawi się przycisk «Napraw JSON» — kliknij, aby automatycznie naprawić
- W razie potrzeby eskalowania Unicode lub ciągów użyj przycisków na dolnym pasku narzędzi
- 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 JSON | Reprezentacja YAML | Uwaga |
|---|---|---|
| string | name: "Alice" | Domyślnie bez cudzysłowów, znaki specjalne wymagają podwójnych cudzysłowów |
| integer | port: 8080 | YAML automatycznie rozpoznaje typ liczbowy |
| boolean | enabled: true | Tylko małe litery true/false |
| null | value: null lub ~ | YAML reprezentuje pustą wartość przez null lub tyldę |
| array | - item1\n- item2 | Każda linia zaczyna się od - |
Porównanie stylów ciągów YAML
YAML obsługuje 6 sposobów zapisu ciągów:
| Styl | Przykład składni | Scenariusz |
|---|---|---|
Bez cudzysłowów | name: Alice | Proste ciągi |
Podwójne cudzysłowy | name: "Alice" | Znaki specjalne, obsługa \n |
Styl blokowy | bio: |\n line1\n line2 | Zachowanie 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
- yaml.orgOficjalna specyfikacja YAML 1.2
- WikipediaYAML — Wikipedia
- KubernetesOficjalny samouczek Kubernetes YAML
- DockerOficjalna dokumentacja Docker Compose
- JSON Compress
- Konwerter CSV na JSON
- JSON na CSV
- JSON Diff
- JSON Escape / Unescape
- Spłaszczanie JSON
- JSON Formatter
- Generator JSON
- Zapytanie JSONPath
- Scal JSON
- Naprawa JSON
- Walidator JSON Schema
- Sortowanie JSON
- JSON Stringify
- JSON do HTML
- JSON do Javy
- JSON na Markdown
- JSON do SQL
- JSON do TOML
- JSON do TypeScript
- XML na JSON
- Konwertuj JSON do XML
- YAML na JSON
- JSON → YAML
- JSON na Go
- JSON na Rust
- JSON to Swift
- JSON na C#
- JSON na C++
- JSON na PHP
- JSON na Python