Convertor YAML în JSON

Lipește YAML (manifeste Kubernetes, Docker Compose, configurații CI) și primești instant JSON curat. Erorile arată linia exactă, cu un indicator.

Rulează în browserFără înregistrareNimic nu este încărcat

JSON rezultat

Cum se folosește: YAML în JSON

  1. Lipește YAML în caseta din stânga sau deschide un fișier .yaml/.yml.
  2. JSON-ul apare în dreapta pe măsură ce scrii. Alege 2 spații, 4 spații sau tab-uri pentru rezultat.
  3. Bifează Sortează cheile pentru a ordona cheile alfabetic. Ajută la compararea configurațiilor.
  4. Dacă YAML-ul este invalid, bara de stare arată linia și coloana, iar liniile problematice apar dedesubt cu un marcaj ^.
  5. Copiază sau descarcă JSON-ul ori apasă Inversează pentru a-l converti înapoi în YAML.

Cum se mapează YAML în JSON

JSON este un subset al YAML 1.2, așa că fiecare mapare YAML devine un obiect JSON, fiecare secvență devine un array, iar scalarii devin șiruri, numere, valori booleene sau null. Funcțiile exclusive YAML sunt rezolvate în timpul conversiei:

  • Comentariile (# …) sunt eliminate, deoarece JSON nu are comentarii.
  • Ancorele și aliasurile (&base, *base, <<: *base) sunt expandate în copii complete.
  • Timestamp-urile precum 2024-01-02 devin șiruri ISO 8601.
  • Șirurile pe mai multe linii (blocuri literale | și pliate >) devin șiruri obișnuite cu \n.

YAML cu mai multe documente

Un singur fișier poate conține mai multe documente YAML separate prin ---, cum este obișnuit în manifestele Kubernetes. JSON nu are un echivalent, așa că convertorul returnează un array JSON cu câte un element pentru fiecare document și semnalează asta în bara de stare. Un --- singur la final este ignorat.

Capcane YAML 1.1 vs 1.2

Acest convertor urmează YAML 1.2, specificația actuală. Multe instrumente mai vechi (PyYAML, Psych din Ruby, unele versiuni Kubernetes și Ansible) citesc încă YAML 1.1, unde regulile diferă:

  • Problema Norvegiei: în YAML 1.1, country: no înseamnă false, așa că codul de țară al Norvegiei, NO, dispare. La fel se întâmplă cu yes, on, off, y și n. YAML 1.2 tratează ca booleene doar true și false.
  • Numere octale: 0755 este octal în 1.1, dar zecimal simplu în 1.2, care folosește 0o755. Pune permisiunile de fișiere între ghilimele, pentru siguranță.
  • Numere sexagesimale: în 1.1, 22:30 poate fi parsat ca numărul 1350. Pune între ghilimele orele și mapările de porturi precum "8080:80".

Direcția JSON → YAML pune automat între ghilimele șirurile ambigue ('no', 'on', 'y'), așa că YAML-ul produs se citește la fel în ambele versiuni.

Întrebări frecvente

Este YAML-ul meu încărcat undeva?
Nu. Parsarea are loc în browser, cu biblioteca open-source js-yaml. Configurațiile care conțin secrete sau nume de host interne nu părăsesc niciodată calculatorul tău.
De ce YAML-ul meu eșuează cu „bad indentation”?
Imbricarea YAML este definită prin spații, iar tab-urile nu sunt permise pentru indentare. Asigură-te că cheile de pe același nivel sunt aliniate exact și că elementele de listă (-) sunt indentate consecvent sub cheia părinte.
Ce se întâmplă cu comentariile YAML?
Sunt eliminate. JSON nu are sintaxă pentru comentarii, așa că nu pot fi transferate. Conversia înapoi în YAML nu le va restaura.
De ce <code>no</code> a rămas șir?
Acest instrument urmează YAML 1.2, unde doar true/false sunt booleene. Parserele mai vechi YAML 1.1 ar transforma no, yes, on și off în booleene („problema Norvegiei”).
Pot converti un manifest Kubernetes cu mai multe resurse?
Da. Fiecare resursă separată prin --- devine un element al array-ului JSON rezultat, gata pentru jq sau kubectl apply -f -, care acceptă și liste JSON.

Instrumente similare