Utilia

Convertor JSON în YAML

Convertește JSON în YAML și YAML în JSON, în browser, cu ancore, chei de îmbinare și fișiere cu mai multe documente. Nimic nu este încărcat.

Conversie

Cum folosești convertorul JSON în YAML

  1. Alege sensul: JSON → YAML sau YAML → JSON.
  2. Lipește datele sau apasă Deschide fișierul pentru a încărca un fișier .json, .yaml sau .yml (până la 10 MB).
  3. Alege Indentare (2 sau 4 spații) și, dacă vrei, Sortează cheile alfabetic.
  4. Apasă Convertește sau continuă să scrii: rezultatul se actualizează automat. Dacă intrarea este invalidă, mesajul de eroare indică linia și coloana problemei.
  5. Copiază sau descarcă rezultatul. Inversează sensul trimite rezultatul înapoi în intrare, ca să-l convertești în sens invers.

JSON și YAML: aceleași date, sintaxă diferită

În practică, YAML este un superset al JSON: orice document JSON descrie date pe care YAML le poate exprima, iar YAML adaugă o sintaxă mai ușoară, mai ușor de citit și de editat de oameni. De aceea manifestele Kubernetes, fișierele Docker Compose, fluxurile GitHub Actions și GitLab CI, playbook-urile Ansible și specificațiile OpenAPI se scriu de obicei în YAML, în timp ce API-urile și programele schimbă JSON.

Aceleași date în ambele formate:

{"name": "web", "ports": [80, 443], "env": {"DEBUG": false}}
name: web
ports:
  - 80
  - 443
env:
  DEBUG: false

JSON → YAML

Convertorul scrie YAML în stil bloc: o cheie pe linie, liste cu liniuțe și obiecte imbricate indentate. Șirurile lungi nu sunt niciodată rupte, iar șirurile pe mai multe linii folosesc stilul literal |, ca întreruperile de linie să fie păstrate exact. Șirurile pe care YAML le-ar citi altfel ca alt tip sunt puse între ghilimele: "yes", "1.0" sau "null" rămân șiruri după o conversie dus-întors. Sortează cheile ordonează alfabetic cheile fiecărui obiect, ceea ce face două fișiere de configurare mai ușor de comparat.

YAML → JSON

YAML-ul este citit cu schema de bază YAML 1.2, aceleași reguli pe care le folosesc majoritatea uneltelor moderne:

  • true/false, numerele și null (sau ~) devin valori JSON; yes, no, on și off rămân șiruri de caractere, așa cum cere specificația YAML 1.2.
  • Ancorele și alias-urile (&base, *base) sunt expandate, iar cheile de îmbinare (<<: *base), frecvente în fișierele CI, sunt acceptate.
  • Un fișier cu mai multe documente separate prin --- devine o listă JSON cu câte un element pentru fiecare document, iar un mesaj îți spune câte au fost combinate.
  • Comentariile sunt eliminate, pentru că JSON nu are comentarii.
  • .inf și .nan nu au echivalent în JSON; sunt scrise ca șirurile "Infinity" și "NaN".

Pentru a-ți proteja browserul de fișierele „billion laughs”, în care câteva alias-uri se extind în miliarde de valori, un document care se extinde la peste un milion de valori este refuzat.

Greșeli frecvente în YAML

  • Tab-uri pentru indentare: YAML permite doar spații.
  • Indentare inconsecventă: elementele aceleiași liste sau ale aceluiași obiect trebuie să înceapă în aceeași coloană.
  • Lipsa spațiului după două puncte: key:value este un singur șir, în timp ce key: value este o pereche cheie-valoare.
  • Caractere speciale fără ghilimele: o valoare care începe cu @, cu un accent grav, cu *, & sau !, ori care conține : sau #, trebuie pusă între ghilimele.

Întrebări frecvente

Este fișierul meu trimis către un server?

Nu. Conversia rulează în browserul tău, iar fișierele tale de configurare, secretele sau datele de API nu părăsesc calculatorul tău.

De ce „yes” și „no” nu sunt convertite în valori booleene?

Începând cu YAML 1.2, doar true și false sunt valori booleene. Analizoarele mai vechi, YAML 1.1, tratau yes, no, on și off ca valori booleene, ceea ce a cauzat celebra „problemă a Norvegiei” (codul de țară NO citit ca fals). Instrumentul urmează YAML 1.2.

Sunt comentariile YAML păstrate?

Nu. JSON nu are comentarii, deci ele se pierd la conversia YAML → JSON. La conversia JSON → YAML, poți adăuga comentarii în rezultat după aceea.

Pot converti un fișier Kubernetes cu mai multe resurse?

Da. Fiecare resursă separată prin --- devine un element al unei liste JSON. Convertind lista înapoi în YAML se obține un singur document care conține o listă.

Schimbă convertorul ordinea cheilor?

Nu, decât dacă bifezi Sortează cheile: cheile păstrează ordinea din intrarea ta. Singura excepție vine din JavaScript însuși: cheile care sunt numere întregi, precum "10" sau "2", sunt plasate primele, în ordine crescătoare.