Konwerter JSON na YAML
Zamień JSON na czysty, przyjazny YAML dla Kubernetes, Docker Compose, GitHub Actions czy Ansible, z pełną kontrolą nad wcięciami, stylem i cudzysłowami.
Działa w przeglądarceBez rejestracjiNic nie jest wysyłane
Jak używać: JSON na YAML
- Wklej JSON do lewego pola lub otwórz plik
.json. - YAML pojawia się po prawej podczas pisania.
- Wybierz wcięcie (2 lub 4 spacje) i styl: blokowy (jeden klucz na linię) lub flow (
{a: 1}/[x, y]) od wybranego poziomu zagnieżdżenia. - Wybierz styl cudzysłowów i zaznacz Sortuj klucze, jeśli chcesz kolejność alfabetyczną.
- Skopiuj lub pobierz YAML. Nieprawidłowy JSON jest zgłaszany z linią, kolumną i prawdopodobną przyczyną.
Po co konwertować JSON na YAML?
JSON jest idealny dla maszyn i API, ale YAML łatwiej czytać i edytować ludziom: bez nawiasów klamrowych, bez obowiązkowych cudzysłowów i z obsługą komentarzy. Większość narzędzi infrastrukturalnych, w tym Kubernetes, Helm, Docker Compose, GitHub Actions, GitLab CI i Ansible, konfiguruje się w YAML, podczas gdy dane wyjściowe (wynik API, kubectl get -o json, stan Terraform) to często JSON.
Styl blokowy a flow
Styl blokowy umieszcza każdy klucz i element listy w osobnej linii i jest standardem w plikach konfiguracyjnych. Styl flow używa inline’owych {} i [], jak JSON, i utrzymuje krótkie struktury liści w zwartej formie. „Flow od poziomu 2” zachowuje dwa górne poziomy w stylu blokowym, a głębsze zapisuje inline, co dobrze sprawdza się przy długich listach małych obiektów, np. portów czy zmiennych środowiskowych.
Bezpieczne cudzysłowy
Ciągi, które parser YAML mógłby źle odczytać, są automatycznie ujmowane w cudzysłowy: wartości takie jak 'no', 'on', '1.0', 'null', ciągi zaczynające się od * lub & oraz ciągi zawierające : . Wybierz Zawsze pojedyncze lub Zawsze podwójne, jeśli Twój przewodnik stylu wymaga cudzysłowów przy każdym ciągu.
Pułapki YAML 1.1 a 1.2
Ten konwerter stosuje YAML 1.2, aktualną specyfikację. Wiele starszych narzędzi (PyYAML, Psych w Ruby, niektóre wersje Kubernetes i Ansible) nadal czyta YAML 1.1, gdzie reguły są inne:
- Problem Norwegii: w YAML 1.1
country: nooznaczafalse, więc kod kraju NorwegiiNOznika. To samo dotyczyyes,on,off,yin. YAML 1.2 traktuje jako wartości logiczne tylkotrueifalse. - Liczby ósemkowe:
0755to liczba ósemkowa w 1.1, ale zwykła dziesiętna w 1.2, który używa0o755. Dla bezpieczeństwa ujmuj uprawnienia plików w cudzysłowy. - Liczby sześćdziesiątkowe: w 1.1
22:30może zostać sparsowane jako liczba 1350. Ujmuj w cudzysłowy godziny i mapowania portów, np."8080:80".
Kierunek JSON → YAML automatycznie ujmuje niejednoznaczne ciągi ('no', 'on', 'y') w cudzysłowy, więc wygenerowany YAML czyta się tak samo w obu wersjach.
Najczęściej zadawane pytania
Czy konwersja jest bezstratna?
Dlaczego niektóre ciągi są w cudzysłowach, a inne nie?
'yes', '123' lub ciągi ze znakami specjalnymi. Reszta pozostaje bez cudzysłowów dla czytelności.Czy mogę dodać komentarze do wyniku?
# komentarze do YAML.