UltKit

Convertor JSON în YAML

Transformați JSON în YAML ușor de citit, de revizuit și de comentat. Încărcați fișiere .json și primiți fișiere .yaml indentate, cu aceleași chei, valori și ordine, gata de pus într-un repository.

Convertor de date

sau trage Fișiere CSV, TSV, TXT … aici ·

Maximum 95 MB per fișier· Până la 20 fișiere· Șterse după 30 minute

Rezultat

Fișierele sunt procesate pe serverele noastre și șterse după 30 minute.

Cum se folosește acest instrument

  1. 1

    Adăugați fișierele JSON

    Încărcați răspunsuri API, setări exportate sau manifeste generate ca fișiere .json, cel mult 20 de fișiere și 95 MB fiecare. Fiecare fișier trebuie să conțină o singură valoare JSON validă.

  2. 2

    Păstrați setările implicite

    YAML este deja selectat la Convertește în. Pentru un fișier de configurare nu mai trebuie schimbat nimic; rezultatul folosește indentare de două spații.

  3. 3

    Convertiți și faceți commit

    Apăsați Convertește în YAML, descărcați fișierele .yaml, adăugați comentarii acolo unde va avea nevoie următorul cititor și faceți commit.

Răspuns

Cum convertesc JSON în YAML?

Încărcați fișierul .json și apăsați Convertește în YAML. Obiectele devin blocuri cheie: valoare indentate, array-urile devin liste cu liniuțe, iar șirurile pe care YAML le-ar putea interpreta greșit își păstrează ghilimelele.

De ce să convertiți JSON în YAML pentru fișierele de configurare

Cea mai mare parte a JSON-ului este produsă de software: un răspuns API, un export de setări, rezultatul unui generator. Cea mai mare parte a YAML-ului este întreținută de oameni. Conversia marchează de obicei momentul în care datele încetează să fie rezultat de mașină și devin ceva ce aparține unei echipe, de exemplu un manifest de deployment din Git, un pipeline CI sau un set de variabile Ansible.

Un caz tipic: apelați un API cloud, primiți o descriere JSON de 200 de rânduri a unei resurse și vreți s-o păstrați ca infrastructură ca cod. Conversia vă dă un fișier fără acolade și virgule, în care o schimbare pe un rând produce un diff pe un rând și puteți explica valorile ciudate în comentarii. La fel și pentru fixture-urile de test și fișierele de traducere editate de non-dezvoltatori. Când aveți nevoie de un tabel plat, pentru o foaie de calcul sau un raport, JSON în CSV este mai potrivit.

Instrumente care folosesc fișiere de configurare YAML

Unde ajunge de obicei YAML-ul convertit
OrganizațieCerințăSursă
GitHub ActionsWorkflow-urile se află în .github/workflows ca fișiere .yml sau .yamlGitHub Docs
GitLab CI/CDPipeline-ul este definit în .gitlab-ci.yml, în rădăcina depozituluiGitLab Docs
Docker ComposeServiciile sunt descrise în compose.yaml (anterior docker-compose.yml)Docker Docs
AnsiblePlaybook-urile și fișierele de variabile se scriu în YAMLAnsible Docs
KubernetesManifestele acceptă JSON sau YAML; documentația și chart-urile Helm folosesc YAMLKubernetes

Exemplu de conversie JSON în YAML cu valori delicate

Rezultat YAML pentru {"name":"api-facturare","version":"1.10","debug":false,"tags":["web","eu"],"country":"NO"}
name: api-facturare
version: "1.10"
debug: false
tags:
  - web
  - eu
country: "NO"

Ce vă oferă YAML

  • Comentarii cu #
  • Diff-uri mai scurte la code review
  • Fără acolade, virgule sau ghilimele pe majoritatea rândurilor
  • Text pe mai multe rânduri cu scalari de bloc |

La ce să fiți atenți

  • Indentarea are sens, deci un spațiu în plus schimbă structura
  • Tabulatorii nu sunt permiși pentru indentare
  • Șirurile fără ghilimele pot fi citite ca numere sau valori booleene
  • Parsere mai lente și mai puțin uniforme decât pentru JSON

Exemplul arată de ce nu ajunge o simplă înlocuire a acoladelor. Versiunea 1.10 este un șir în JSON; scrisă fără ghilimele în YAML ar fi citită ca numărul 1.1. NO, codul ISO al Norvegiei, ar fi citit ca false de parserele YAML 1.1, precum PyYAML. Ambele își păstrează ghilimelele, în timp ce numerele și valorile booleene reale rămân fără ghilimele.

JSON și YAML: comparație

JSON

JavaScript Object Notation

JSON este un format text ușor pentru date structurate, popularizat de Douglas Crockford la începutul anilor 2000 și standardizat ca RFC 8259 și ECMA-404. Reprezintă obiecte, liste, șiruri de caractere, numere, valori booleene și null printr-o sintaxă simplă și lizibilă. Este formatul implicit pentru API-uri web, fișiere de configurare și schimbul de date între aplicații în aproape toate limbajele de programare. Nu are comentarii, date calendaristice sau scheme încorporate, iar fișierele mari, cu multe niveluri, sunt greu de citit fără un vizualizator.

Compresie
–
Transparență
–
Animație
–
Introdus în
2001 · Douglas Crockford
Convertor JSON

YAML

YAML

YAML („YAML Ain't Markup Language”) este un format de date ușor de citit de oameni, lansat pentru prima dată în 2001. Folosește indentarea în loc de paranteze, acceptă comentarii și este un superset al JSON. Este folosit pe scară largă pentru configurare în Docker Compose, Kubernetes, GitHub Actions și multe aplicații. Dependența de spațiile albe îl face ușor de stricat cu un singur spațiu pus greșit, iar unele valori, cum ar fi „no” sau datele, pot fi interpretate neașteptat.

Compresie
–
Transparență
–
Animație
–
Introdus în
2001 · Clark Evans, Ingy döt Net, Oren Ben-Kiki
Convertor YAML

Oamenii convertesc JSON în YAML când datele generate sau cele din API trebuie să devină un fișier de configurare pe care oamenii îl întrețin, îl verifică în pull request-uri și îl adnotează cu comentarii.

Întrebări despre convertorul JSON în YAML

Este JSON deja un YAML valid?

În YAML 1.2, da: revizuirea din 2009 a fost scrisă astfel încât orice document JSON să fie și document YAML. Puteți lipi JSON într-un fișier .yaml și majoritatea instrumentelor îl vor accepta. Conversia ține de lizibilitate: stilul pe blocuri, fără acolade, ghilimele și virgule, este cel pe care îl așteaptă cei care fac review și următorul responsabil.

De ce unele valori apar între ghilimele în YAML?

Pentru că fără ghilimele YAML le-ar citi ca alt tip. Un număr de versiune precum 1.10 ar deveni numărul 1.1, iar yes sau off ar putea deveni valori booleene în parserele mai vechi. Șirurile care arată ca numere, date sau valori booleene au nevoie de ghilimele ca să rămână șiruri, de aceea o conversie atentă le păstrează.

Pot adăuga comentarii după conversie?

Da, și este un motiv frecvent pentru conversie. Scrieți # urmat de nota dumneavoastră la sfârșitul unui rând sau pe un rând separat. JSON nu avea cum să explice de ce o valoare este setată așa; YAML are, ceea ce ușurează review-urile și predările de proiect.

De ce YAML-ul meu dă eroare din cauza unui caracter tab?

Specificația YAML interzice tabulatorii pentru indentare; contează doar spațiile. Convertorul scrie spații, dar un editor setat să insereze tabulatori poate strica fișierul la următoarea modificare. Setați editorul să folosească spații pentru fișierele .yaml.

Va accepta Kubernetes manifestul convertit?

kubectl citește atât JSON, cât și YAML, deci datele sunt aceleași în ambele cazuri; versiunea YAML este pur și simplu cea folosită de majoritatea documentațiilor, a chart-urilor Helm și a code review-urilor. Dacă mai târziu aveți nevoie din nou de JSON pentru jq sau un apel API, YAML în JSON face operația inversă.