Cum se folosește
- Alegeți direcția: JSON → YAML sau YAML → JSON.
- Lipiți datele sau apăsați „Încearcă un exemplu”. Rezultatul se actualizează pe măsură ce tastați.
- Alegeți 2 sau 4 spații de indentare pentru rezultat.
- Copiați sau descărcați rezultatul. „Folosiți rezultatul ca intrare” inversează direcția, astfel încât să puteți converti înapoi.
Cum funcționează
Conversia folosește biblioteca open-source yaml (versiunea 2), care implementează specificația YAML 1.2. YAML 1.2 este, în scopuri practice, un superset al JSON, astfel încât orice document JSON se convertește în YAML fără pierderi, iar YAML-ul care folosește doar hărți, liste, șiruri, numere, valori booleene și null se convertește înapoi într-un JSON identic.
La scrierea YAML, instrumentul pune între ghilimele șirurile pe care un cititor le-ar putea interpreta altfel. Parserele YAML 1.1 mai vechi, cum ar fi PyYAML și multe instrumente CI, interpretează yes, no, on și off ca valori booleene, 0777 ca număr octal și 2024-01-31 ca dată, astfel încât acestea sunt scrise ca "yes", "0777" și "2024-01-31". Șirurile lungi nu sunt pliate pe mai multe linii. Comentariile nu pot fi păstrate, deoarece JSON nu are comentarii.
La citirea YAML, ancorele (&name) și aliasurile (*name) sunt expandate, inclusiv cheia de fuziune <<, iar un fișier cu mai multe documente separate prin --- devine un array JSON. Pentru a proteja browserul, expandarea aliasurilor este limitată, ceea ce oprește documentele de tip „billion laughs”. Valorile YAML fără echivalent JSON sunt convertite cât mai fidel posibil: .inf și .nan devin null, iar timestamp-urile rămân șiruri. Erorile de sintaxă sunt raportate cu linia și coloana.
Exemple
Manifest Kubernetes
Un Deployment scris ca JSON de un script se convertește la formatul YAML așteptat de utilizatorii kubectl, cu listele de sub containers scrise ca - name: web. Valorile precum "no" rămân între ghilimele, astfel încât să rămână șiruri.
Configurație CI cu ancore
Un fișier de pipeline definește valori implicite: &defaults și le reutilizează cu <<: *defaults. Conversia la JSON arată exact ce chei primește fiecare job după fuziune.
Specificație OpenAPI
Un fișier OpenAPI este întreținut în YAML, dar un generator de cod are nevoie de JSON. Lipește YAML-ul, alege indentarea de 2 spații și descarcă fișierul .json.
Întrebări frecvente
De ce este scris "yes" între ghilimele în YAML-ul meu?
Conform regulilor YAML 1.1, încă folosite de PyYAML, Ansible și multe alte instrumente, un yes, no, on sau off fără ghilimele este o valoare booleană. Punerea între ghilimele îl păstrează ca șir în orice parser. Ghilimelele nu fac parte din valoare.
Comentariile YAML sunt păstrate la conversia în JSON?
Nu. JSON nu are sintaxă pentru comentarii, așa că acestea sunt eliminate. Convertirea JSON-ului înapoi în YAML nu le va restaura.
Ce se întâmplă cu mai multe documente YAML separate prin ---?
Sunt convertite într-un singur array JSON, cu câte un element pentru fiecare document, în ordine. Un singur document este convertit direct în valoarea sa.
Ce se întâmplă cu etichetele personalizate, cum ar fi !Ref din CloudFormation?
Etichetele specifice aplicațiilor nu sunt recunoscute. Instrumentul afișează un avertisment și convertește valoarea etichetată ca valoare simplă, astfel încât !Ref MyBucket devine șirul "MyBucket", iar eticheta în sine se pierde.
Confidențialitate
Ambele direcții rulează integral în browserul dvs. JSON-ul sau YAML-ul dvs. nu este încărcat, stocat sau inclus în analize.