JSON do YAML

Wklej JSON i otrzymaj czysty YAML: poprawne wcięcie dwoma spacjami, łańcuchy w cudzysłowie tylko gdy to konieczne, wartości wieloliniowe przedstawione jako skalary blokowe oraz opcjonalne sortowanie kluczy alfabetycznie. Przydatne do konwersji odpowiedzi API na manifesty Kubernetes, pliki konfiguracji GitHub Actions lub dowolne narzędzia, dla których YAML jest formatem natywnym.

Jak przekształcić JSON w YAML

  1. 1

    Wklej JSON

    Dowolny poprawny JSON. Konwerter dokładnie zachowuje strukturę semantyczną.

  2. 2

    Wybierz wcięcie i styl

    2 lub 4 spacje; styl przepływowy dla kompaktowych tablic/obiektów oraz styl blokowy dla długich form.

  3. 3

    Opcjonalnie: sortuj klucze

    Sortowanie alfabetyczne ułatwia porównywanie YAML pomiędzy dwiema wersjami.

  4. 4

    Skopiuj YAML

    Wklej do pliku `.yaml` / `.yml`. Wynik to prawidłowy YAML 1.2.

Przykład

Wejście:

{
  "name": "hyperion",
  "replicas": 3,
  "env": { "DEBUG": "false", "LOG_LEVEL": "info" },
  "command": ["php", "artisan", "queue:work"]
}

Wyjście:

name: hyperion
replicas: 3
env:
  DEBUG: "false"
  LOG_LEVEL: info
command:
  - php
  - artisan
  - queue:work

Mapowanie typów

JSON YAML
łańcuch bez cudzysłowów, w cudzysłowie lub skalar blokowy według potrzeb
liczba całkowita 42
liczba 3.14
boolean true / false
null null (lub ~, lub pusty)
tablica sekwencja blokowa z - lub przepływ [...]
obiekt mapowanie blokowe z key: value lub przepływ {...}

Gdy łańcuchy wymagają cudzysłowów

YAML automatycznie interpretuje niektóre łańcuchy jako wartości nietekstowe. Wartości o takiej formie wymagają cudzysłowów:

Wartość Dlaczego potrzebne są cudzysłowy
yes, no, on, off Interpretowane jako wartości logiczne (zgodność z YAML 1.1)
null, Null, NULL Interpretowane jako null
1.23 Interpretowane jako liczba
2026-04-18 Interpretowane jako data
Spacje wiodące/końcowe Zostaną usunięte
Zaczyna się od *, &, ! Dyrektywy YAML

Konwerter automatycznie umieszcza te wartości w cudzysłowach, a pozostałe zostawia bez nich, aby tekst był czytelniejszy.

Różnice w projektowaniu między YAML a JSON

  • Komentarze: YAML je obsługuje (#), a JSON nie.
  • Kotwice/aliasy: YAML umożliwia odwołania wzajemne (&anchor / *alias); JSON powtarza dane. Konwersja nie potrafi ich wywnioskować – dodaj je ręcznie, jeśli chcesz.
  • Łańcuchy wieloliniowe: YAML ma skalary blokowe (| zachowuje znaki nowej linii, > je składa). Konwerter wykorzystuje je do długich łańcuchów.
  • Reprezentacja null: YAML dopuszcza null, ~ lub pustą wartość. Domyślnie konwerter zwraca null.

Najczęstsze błędy

  • „Problem Norwegii“ w YAML 1.1. Bez cudzysłowów NO w YAML 1.1 to wartość logiczna false. Większość nowoczesnych parserów używa YAML 1.2, gdzie tylko true/false są wartościami logicznymi, ale niektóre starsze narzędzia nadal sprawiają problemy.
  • Spacje na końcu wartości. YAML zachowuje je w skalarach blokowych, a usuwa w prostych. Niespodziewane, jeśli nie wiesz, jaką formę otrzymałeś.
  • Tabulatory we wcięciach. YAML zabrania wcięć tabulatorami; zawsze używaj spacji.
  • Bardzo długie łańcuchy w jednej linii. Podziel je na skalary blokowe dla czytelności; konwerter robi to automatycznie po przekroczeniu konfigurowalnego progu.

Najczęściej zadawane pytania

Łańcuchy, które wyglądają jak inne typy YAML (wartości logiczne, liczby, daty, null), wymagają cudzysłowów, aby pozostały łańcuchami. Łańcuchy ze znakami specjalnymi (spacja na początku, znaki niedrukowalne) również ich wymagają. Konwerter wykrywa to automatycznie i dodaje cudzysłowy tam, gdzie trzeba.

Domyślnie używany jest YAML 1.2. Jeśli potrzebujesz zgodności z YAML 1.1 (starsze narzędzia lub niektóre systemy CI), włącz opcję „Zgodność z YAML 1.1“; konwerter doda wtedy dodatkowe cudzysłowy dla wartości, które w 1.1 byłyby wartościami logicznymi (yes, no, on, off).

Tak. Styl przepływu ([1, 2, 3] i { a: 1 }) jest dostępny dla kompaktowych tablic i obiektów. Większość plików konfiguracji preferuje styl blokowy ze względu na lepszą czytelność.

Tak, z jednym zastrzeżeniem: YAML w K8s często opiera się na komentarzach i kotwicach, których JSON nie potrafi wyrazić. Przekształć strukturę danych, a następnie dodaj komentarze i kotwice ręcznie.

Powiązane narzędzia

Narzędzie jest dostępne w innych językach