YAML do JSON

YAML przyjemniej pisze się ręcznie, JSON przyjemniej konsumuje programowo, a wiele nowoczesnych narzędzi (potoki CI, Kubernetes, Ansible) przyjmuje oba. Gdy musisz wkleić konfigurację do narzędzia, które upiera się przy JSON, definicje API Gateway, szablony CloudFormation, niektóre ciała webhooków, ten konwerter robi tę podróż. Kotwice, scalenia i typy specyficzne dla YAML (daty, liczby ósemkowe, null, ~) są normalizowane do odpowiedników JSON.

Jak przekonwertować YAML na JSON

  1. 1

    Wklej YAML

    Dowolny prawidłowy dokument YAML 1.1 lub 1.2.

  2. 2

    Rozwiąż kotwice

    Kotwice (`&x`) i aliasy (`*x`) są rozwijane w linii. Klucze scalania (`<<`) są spłaszczane.

  3. 3

    Znormalizuj typy

    Daty, wartości null i wartości logiczne są konwertowane na odpowiedniki JSON.

  4. 4

    Wyprowadź JSON

    Ładnie sformatowane lub zminifikowane, do wyboru.

Przykładowa konwersja

YAML:

defaults: &defaults
  timeout: 30
  retries: 3

production:
  <<: *defaults
  host: prod.example.com
  debug: false

staging:
  <<: *defaults
  host: staging.example.com
  debug: true

JSON (kotwice rozwiązane):

{
  "defaults": {
    "timeout": 30,
    "retries": 3
  },
  "production": {
    "timeout": 30,
    "retries": 3,
    "host": "prod.example.com",
    "debug": false
  },
  "staging": {
    "timeout": 30,
    "retries": 3,
    "host": "staging.example.com",
    "debug": true
  }
}

Mapowania typów

YAML JSON
Ciąg Ciąg
Liczba całkowita Liczba
Liczba zmiennoprzecinkowa Liczba
Wartość logiczna (true, false) Wartość logiczna
Null (null, ~, puste) null
Znacznik czasu Ciąg ISO 8601
Sekwencja (lista) Tablica
Mapowanie Obiekt

Rzeczy specyficzne dla YAML, których JSON nie potrafi przedstawić

  • Komentarze. JSON nie ma standardowej składni komentarzy. Komentarze są gubione.
  • Strumienie wielodokumentowe (separatory ---). JSON to jeden dokument na plik; konwerter emituje tablicę dokumentów, gdy jest ich wiele.
  • Kotwice i aliasy. Rozwiązywane i powielane w linii.
  • Klucze złożone (klucze mapowania niebędące ciągami). Klucze JSON muszą być ciągami; klucze złożone są zamieniane na ciągi.

Pułapka 1.1 kontra 1.2

  • YAML 1.1 parsuje yes, no, on, off, y, n jako wartości logiczne. NO jako kod kraju po cichu staje się false.
  • YAML 1.2 ogranicza wartości logiczne do true i false. Bezpieczniejsze, ale wiele parserów (w tym domyślny PyYAML) wciąż używa 1.1.

Konwerter domyślnie stosuje semantykę 1.2 i ostrzega, gdy 1.1 zmieniłoby wynik.

Podróż powrotna z JSON na YAML

JSON na YAML jest zwykle bezstratny (JSON to podzbiór składni YAML 1.2). YAML na JSON jest stratny: komentarze i struktura kluczy scalania znikają. Jeśli planujesz konwersję w obie strony, zachowaj oryginalny YAML w systemie kontroli wersji.

Najczęściej zadawane pytania

Nie, mają one własne szablonowanie, które działa przed parsowaniem YAML. Najpierw wyrenderuj szablon (przez kustomize build lub helm template), a potem podaj wynik tutaj.

Znaczniki czasu YAML stają się ciągami ISO 8601 w JSON. 2026-04-18 staje się "2026-04-18". Czasy i strefy czasowe są zachowywane.

Praktyczny limit w przeglądarce to około 10 MB. Dla większych plików użyj yq lub python -c "import yaml, json; print(json.dumps(yaml.safe_load(open(file))))" w linii poleceń.

Nie. Konwersja działa w Twojej przeglądarce i nic nie jest przesyłane.

Powiązane narzędzia

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