← Toate instrumentele

Convertor JSON în YAML

Convertește JSON în YAML și YAML în JSON instant, direct în browser. Doar local și privat, cu note despre comentarii, tipuri, indentare și ancore.

Convertește JSON în YAML și YAML în JSON direct în browser

JSON și YAML descriu același tip de date — mape imbricate, liste, șiruri, numere și valori booleene — dar arată foarte diferit și sunt folosite în locuri diferite. Dacă petreci timp în preajma API-urilor, fișierelor de containere sau pipeline-urilor CI, ajungi până la urmă să ai nevoie să transformi unul în celălalt. Această pagină face acea conversie în ambele sensuri, în întregime în browserul tău, astfel încât datele pe care le lipești nu părăsesc niciodată mașina ta.

Acolade abstracte de lumină transformându-se în straturi de configurare curat indentate pe un fundal indigo închis
Structura JSON desfășurându-se în YAML bazat pe indentare.

Ce este JSON și unde este folosit

JSON (JavaScript Object Notation) este un format strict, bazat pe paranteze și acolade, construit pentru mașini în primul rând. Fiecare obiect este încadrat în {}, fiecare array în [], cheile și valorile de tip șir sunt încadrate în ghilimele duble, iar elementele sunt separate prin virgule. Este formatul implicit pentru API-urile REST și GraphQL, corpul majorității webhook-urilor, forma documentelor NoSQL și rezultatul apelurilor tale fetch. Aproape orice limbaj îl analizează din start, motiv exact pentru care a câștigat stratul API: JSON.parse în JavaScript, json în biblioteca standard Python și echivalente peste tot. Compromisul este că JSON este verbos de scris de mână și interzice comentariile, deci este un format slab pentru fișiere pe care un om le editează toată ziua.

Ce este YAML și unde este folosit

YAML (YAML Ain't Markup Language) a fost proiectat pentru prioritatea opusă: oamenii în primul rând. Renunță la acolade și ghilimele, folosește indentarea pentru a exprima imbricarea și îți permite să scrii comentarii cu #. Acea lizibilitate este motivul pentru care a devenit limba comună a configurării. Fișierele Docker Compose, manifestele Kubernetes, fluxurile de lucru GitHub Actions și GitLab CI, playbook-urile Ansible și nenumărate fișiere de configurare ale aplicațiilor sunt toate YAML. Un document YAML tipic este vizibil mai scurt decât JSON-ul echivalent și mult mai ușor de comparat într-un pull request. Costul acelei eleganțe este fragilitatea, și aici conversia devine interesantă.

Diferențele cheie care contează

Trei diferențe determină aproape orice decizie de conversie. Prima, spațiile albe sunt semnificative în YAML și lipsite de sens în JSON. YAML folosește spații — niciodată tab-uri — pentru a denota structura, deci un singur spațiu dezaliniat poate schimba silențios sensul unui document. JSON nu se preocupă deloc de indentare. A doua, YAML suportă comentarii, iar JSON nu. Orice comentariu # din YAML pur și simplu dispare când produci JSON, pentru că nu are unde să fie plasat. A treia, YAML are o tipizare mai bogată, implicită. Citește fără probleme date calendaristice, marcaje temporale și null în mai multe forme, și ghicește tipurile din valori neîncadrate în ghilimele. JSON are un set de tipuri mic, explicit, și fără ambiguitate. Reține și că JSON este tehnic o submulțime a YAML 1.2, motiv pentru care JSON valid de obicei se analizează curat ca YAML, dar inversul nu este garantat.

Un arbore de date imbricat convertindu-se între două formate structurate luminoase în cyan și auriu
Același arbore de date exprimat ca două formate.

Capcane de conversie de urmărit

Turul complet nu este întotdeauna fără pierderi, și merită să știi unde se strică lucrurile:

  • Problema Norvegiei. Conform regulilor YAML 1.1, NO neîncadrat în ghilimele este analizat ca valoarea booleană false, iar yes, on și off devin și ele valori booleene. Un cod de țară sau o etichetă de comutator se poate transforma în true/false înainte să observi. Încadrează în ghilimele valorile pe care le vrei ca șiruri.
  • Coerciția numerelor. O versiune precum 3.10 își poate pierde zeroul final și deveni 3.1, iar 1.0 devine un număr chiar și atunci când voiai text. Încadrează în ghilimele șirurile de versiune și ID-urile.
  • Ancorele și aliasurile dispar. Referințele &ancora și *alias din YAML nu au echivalent JSON. Un convertor bun le extinde la valoarea lor completă, deci datele sunt corecte, dar deduplicarea dispare — JSON în YAML în JSON nu va reconstrui ancorele originale.
  • Comentarii și scalari bloc. Comentariile sunt eliminate la trecerea în JSON. Scalarii bloc pe mai multe linii (| și >) se restrâng în șiruri JSON obișnuite cu escape-uri \n, deci intenția de formatare vizuală se pierde.
  • Indentarea la revenirea în YAML. JSON nu codifică indentarea, deci convertorul alege un stil consecvent. Verifică-l înainte de a-l lipi într-un instrument sensibil la tab-uri.

De ce contează local-only

Fișierele de configurare și payload-urile API sunt exact genul de lucru care n-ar trebui încărcat pe un server aleatoriu: adesea conțin nume de gazdă, token-uri, nume interne de servicii sau date de client. Acest convertor rulează pasul de analizare-și-generare în browserul tău, cu JavaScript. Nimic nu este trimis către un backend, nimic nu este înregistrat, iar instrumentul funcționează offline odată ce pagina s-a încărcat. Lipește un secret Kubernetes sau un flux de lucru CI cu încredere că rămâne pe mașina ta.

Ai nevoie de instrumente conexe? Explorează întregul set de convertoare de date, curăță datele dezordonate cu formatatorul JSON, și revino aici oricând trebuie să te deplasezi între lumea API-urilor și lumea configurării.

Întrebări frecvente

Datele mele sunt încărcate undeva?

Nu. Conversia se întâmplă în întregime în browserul tău, folosind JavaScript local. JSON-ul sau YAML-ul tău nu este niciodată trimis către un server, deci secretele și fișierele de configurare rămân private.

De ce s-a schimbat neașteptat valoarea true sau false din YAML-ul meu?

YAML 1.1 tratează cuvinte neîncadrate în ghilimele precum yes, no, on și off ca valori booleene — problema Norvegiei. Încadrează în ghilimele orice valoare pe care o vrei ca șir, astfel încât să supraviețuiască conversiei ca text.

Ce se întâmplă cu comentariile mele când convertesc YAML în JSON?

JSON nu are sintaxă de comentarii, deci toate comentariile cu hash sunt eliminate în timpul conversiei. Dacă trebuie să păstrezi notițe, păstrează copia ta autoritară în YAML.

Ancorele și aliasurile YAML sunt păstrate?

Ele sunt extinse la valorile lor complete, deoarece JSON nu are niciun mecanism de referință. Datele rămân corecte, dar deduplicarea nu este recuperabilă când convertești înapoi în YAML.

Pot converti JSON în YAML, precum și YAML în JSON?

Da, instrumentul funcționează în ambele direcții. Lipește JSON pentru a obține YAML, sau lipește YAML pentru a obține JSON, iar convertorul detectează și generează celălalt format.

De ce se strică YAML-ul când folosesc tab-uri?

YAML cere spații pentru indentare și respinge tab-urile. Dacă o lipire eșuează la analiză, înlocuiește caracterele tab cu spații și păstrează indentarea consecventă.