UltKit

JSON na YAML-omskakelaar

Skryf JSON oor as YAML wat mense kan lees, hersien en van kommentaar voorsien. Laai .json-lêers op en kry ingekeepte .yaml met dieselfde sleutels, waardes en volgorde, gereed om in 'n bewaarplek te plaas.

Data-omskakelaar

of los CSV, TSV, TXT …-lêers hier ·

Maks. 95 MB per lêer· Tot 20 lêers· Uitgevee na 30 minute

Uitvoer

Lêers word op ons bedieners verwerk en na 30 minute uitgevee.

Hoe om hierdie nutsding te gebruik

  1. 1

    Voeg die JSON-lêers by

    Laai API-antwoorde, uitgevoerde instellings of gegenereerde manifeste op as .json, tot 20 lêers van elk tot 95 MB. Elke lêer moet een geldige JSON-waarde bevat.

  2. 2

    Behou die verstekinstellings

    YAML is reeds gekies onder Skakel om na. Vir 'n konfigurasielêer hoef niks anders verander te word nie; die uitvoer gebruik twee spasies vir inkeping.

  3. 3

    Skakel om en commit

    Druk Skakel om na YAML, laai die .yaml-lêers af, voeg kommentaar by waar die volgende leser dit sal nodig hê, en commit.

Antwoord

Hoe skakel ek JSON na YAML om?

Laai die .json-lêer op en druk Skakel om na YAML. Objekte word ingekeepte sleutel: waarde-blokke, skikkings word lyste met strepies, en stringe wat YAML verkeerd kan lees, behou hul aanhalingstekens.

Waarom JSON na YAML omskakel vir konfigurasielêers

Die meeste JSON word deur sagteware voortgebring: 'n API-antwoord, 'n instellingsuitvoer, die resultaat van 'n generator. Die meeste YAML word deur mense onderhou. Die omskakeling merk gewoonlik die oomblik waarop data ophou om masjienuitvoer te wees en iets word wat 'n span besit, soos 'n ontplooiingsmanifes in Git, 'n CI-pyplyn of 'n stel Ansible-veranderlikes.

'n Tipiese geval: jy roep 'n wolk-API, kry 'n JSON-beskrywing van 200 reëls van 'n hulpbron terug, en wil dit as infrastruktuurkode hou. Omskakeling gee jou 'n lêer sonder krulhakies en kommas, waar 'n eenreël-verandering 'n eenreël-diff gee en jy vreemde waardes in kommentaar kan verduidelik. Dieselfde geld vir toetsdata en vertaallêers wat nie-programmeerders wysig. As jy eerder 'n plat tabel nodig het, vir 'n sigblad of verslag, pas JSON na CSV beter.

Gereedskap waarvan die konfigurasielêers YAML is

Waar omgeskakelde YAML gewoonlik beland
OrganisasieVereisteBron
GitHub ActionsWerkvloeie is in .github/workflows as .yml- of .yaml-lêersGitHub Docs
GitLab CI/CDDie pyplyn word in .gitlab-ci.yml in die wortel van die bewaarplek gedefinieerGitLab Docs
Docker ComposeDienste word in compose.yaml beskryf (voorheen docker-compose.yml)Docker Docs
AnsiblePlaybooks en veranderlike-lêers word in YAML geskryfAnsible Docs
KubernetesManifeste aanvaar JSON of YAML; dokumentasie en Helm-kaarte gebruik YAMLKubernetes

JSON na YAML-voorbeeld met lastige waardes

YAML-uitvoer vir {"name":"api","version":"1.10","debug":false,"tags":["web","za"],"country":"NO"}
name: api
version: "1.10"
debug: false
tags:
  - web
  - za
country: "NO"

Wat YAML jou gee

  • Kommentaar met #
  • Korter diffs in kodehersiening
  • Geen krulhakies, kommas of aanhalingstekens op die meeste reëls nie
  • Veelreël-teks met |-blokskalare

Waarop om te let

  • Inkeping dra betekenis, so 'n verdwaalde spasie verander die struktuur
  • Tabs word nie vir inkeping toegelaat nie
  • Stringe sonder aanhalingstekens kan as getalle of booleans gelees word
  • Stadiger en minder eenvormige ontleders as JSON

Die voorbeeld wys hoekom 'n eenvoudige soek-en-vervang van krulhakies nie genoeg is nie. Die weergawe 1.10 is 'n string in die JSON; kaal in YAML geskryf sou dit as die getal 1.1 gelees word. NO, die ISO-kode vir Noorweë, sou deur YAML 1.1-ontleders soos PyYAML as false gelees word. Albei behou hul aanhalingstekens, terwyl ware getalle en booleans kaal bly.

JSON en YAML vergelyk

JSON

JavaScript Object Notation (JSON)

JSON is 'n ligte teksformaat vir gestruktureerde data, in die vroeë 2000's deur Douglas Crockford gewild gemaak en as RFC 8259 en ECMA-404 gestandaardiseer. Dit stel objekte, skikkings, stringe, getalle, booleaanse waardes en null met eenvoudige, leesbare sintaksis voor. Dit is die verstekformaat vir web-API's, opstellingslêers en data-uitruiling tussen programme in byna elke programmeertaal. Dit het nie ingeboude kommentaar, datums of skemas nie, en groot geneste lêers is sonder 'n kyker moeilik om te lees.

Kompressie
–
Deursigtigheid
–
Animasie
–
Bekendgestel
2001 · Douglas Crockford
JSON-omskakelaar

YAML

YAML

YAML ("YAML Ain't Markup Language") is 'n mensvriendelike dataformaat wat die eerste keer in 2001 vrygestel is. Dit gebruik inkeping in plaas van hakies, ondersteun kommentaar en is 'n supersverzameling van JSON. Dit word wyd vir opstelling in Docker Compose, Kubernetes, GitHub Actions en baie toepassings gebruik. Die afhanklikheid van witspasie maak dit maklik om met een verkeerd geplaasde spasie te breek, en sommige waardes, soos "no" of datums, kan onverwags vertolk word.

Kompressie
–
Deursigtigheid
–
Animasie
–
Bekendgestel
2001 · Clark Evans, Ingy döt Net, Oren Ben-Kiki
YAML-omskakelaar

Mense skakel JSON na YAML om wanneer gegenereerde data of API-data 'n konfigurasielêer moet word wat mense onderhou, in pull requests hersien en met kommentaar annoteer.

Vrae oor die JSON na YAML-omskakelaar

Is JSON reeds geldige YAML?

Onder YAML 1.2, ja: die hersiening van 2009 is so geskryf dat elke JSON-dokument ook 'n YAML-dokument is. Jy kan JSON in 'n .yaml-lêer plak en die meeste gereedskap sal dit aanvaar. Omskakeling gaan oor leesbaarheid: blokstyl sonder krulhakies, aanhalingstekens en kommas is wat hersieners en die volgende onderhouer verwag.

Waarom staan sommige waardes in die YAML tussen aanhalingstekens?

Want sonder aanhalingstekens sal YAML dit as 'n ander tipe lees. 'n Weergawe-string soos 1.10 sou die getal 1.1 word, en yes of off kan in ouer ontleders booleans word. Stringe wat soos getalle, datums of booleans lyk, het aanhalingstekens nodig om stringe te bly, so 'n versigtige omskakeling behou dit.

Kan ek ná die omskakeling kommentaar byvoeg?

Ja, en dit is 'n algemene rede om om te skakel. Skryf # gevolg deur jou nota aan die einde van 'n reël of op sy eie reël. JSON het geen manier gehad om te verduidelik hoekom 'n waarde so gestel is nie; YAML het, wat hersienings en oordragte makliker maak.

Waarom gee my YAML 'n fout oor 'n tab-karakter?

Die YAML-spesifikasie verbied tabs vir inkeping; slegs spasies tel. Die omskakelaar skryf spasies, maar 'n redigeerder wat tabs invoeg kan die lêer met die volgende wysiging breek. Stel jou redigeerder om spasies vir .yaml-lêers te gebruik.

Sal Kubernetes die omgeskakelde manifes aanvaar?

kubectl lees beide JSON en YAML, so die data is in elk geval dieselfde; die YAML-weergawe is bloot wat die meeste dokumentasie, Helm-kaarte en kodehersienings gebruik. As jy later JSON terug nodig het vir jq of 'n API-oproep, keer YAML na JSON dit om.