UltKit

YAML na JSON-omskakelaar

Skakel YAML-konfigurasie, OpenAPI-spesifikasies en CI-lêers om na JSON wat enige ontleder, API of skemavalideerder kan lees. Laai .yaml- of .yml-lêers op en laai ingekeepte JSON af.

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

    Laai YAML-lêers op

    Voeg .yaml- of .yml-lêers by, tot 20 op een slag en 95 MB elk. Behou die oorspronklike name; die JSON-lêers kry dieselfde name met 'n nuwe uitbreiding.

  2. 2

    Kies ingekeep of kompak

    Netjiese formatering is aan, wat die JSON inkeep sodat dit maklik is om te lees en na te gaan. Skakel dit af onder Gevorderde instellings vir 'n eenreël-lêer wat jy in 'n versoekliggaam kan plak.

  3. 3

    Skakel om en gebruik

    Druk Skakel om na JSON, laai af, en gee die lêer aan die API, die valideerder of die skrip wat dit nodig gehad het.

Waarom ontwikkelaars YAML na JSON omskakel

YAML is vir mense geskryf: inkeping in plaas van krulhakies, kommentaar, geen aanhalingstekens om die meeste strings nie. Daarom is dit die formaat van Kubernetes-manifeste, GitHub Actions-werkvloeie, Docker Compose-lêers en OpenAPI-spesifikasies wat spanne met die hand wysig. JSON is vir programme geskryf. Elke taal het 'n JSON-ontleder in sy standaardbiblioteek, blaaiers ontleed dit natuurlik, en die meeste HTTP-API's neem niks anders nie.

Die omskakeling gebeur dus by die grens. 'n Platformingenieur stuur 'n manifes deur jq, wat net JSON lees. 'n Agterkant-ontwikkelaar stuur 'n OpenAPI-spesifikasie na 'n kodegenerator wat JSON wil hê. 'n Toetser laai fikstuurdata wat in YAML geskryf is in 'n JavaScript-toetsstel. In elke geval bly die YAML die bron van waarheid en is die JSON 'n bou-artefak. Vir 'n hele gids voere of uitvoere eerder as konfigurasies hanteer XML na JSON die ouer opmaakformaat op dieselfde manier.

Hoe YAML en JSON saam ontwikkel het

YAML die eerste keer deur Clark Evans voorgestel
2001
YAML 1.2 het JSON 'n subset van YAML gemaak
2009
RFC 8259, die huidige JSON-standaard
2017
YAML 1.2.2-hersiening gepubliseer
2021

Wat gebeur in die JSON met kenmerke wat net YAML het

'n Anker (&defaults) en sy aliasse (*defaults) laat YAML 'n blok hergebruik. JSON het geen verwysings nie, so elke alias word deur 'n volle kopie van die geankerde blok vervang.

  • Die JSON kan merkbaar langer as die YAML wees
  • Saamsmeltsleutels (<<: *defaults) word op dieselfde manier uitgebrei
'n Klein YAML-konfigurasie as netjies geformateerde JSON
{
  "service": "billing",
  "replicas": 3,
  "ports": [8080, 9090],
  "env": {
    "LOG_LEVEL": "info",
    "REGION": "NO"
  }
}

Feite oor die YAML- en JSON-formaat

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

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

Mense skakel YAML na JSON om wanneer 'n konfigurasie of spesifikasie wat vir mense geskryf is, 'n masjien moet voed: 'n API-versoek, 'n skemavalideerder of 'n instrument sonder YAML-ontleder.

Vrae oor die YAML na JSON-omskakelaar

Waarom YAML na JSON omskakel as albei dieselfde data bevat?

Omdat baie gereedskap net een van die twee kan lees. JSON-lesers is by elke programmeertaal en blaaier ingesluit, terwyl YAML 'n ekstra biblioteek nodig het. Versoekliggame vir REST-API's, JSON Schema-valideerders, jq, en lêers soos package.json of 'n blaaieruitbreiding se manifest.json verwag almal JSON.

Wat gebeur met my YAML-kommentaar?

Hulle word weggelaat. RFC 8259 gee JSON geen kommentaarsintaksis nie, so reëls wat met # begin het nêrens om heen te gaan nie. Hou die YAML-lêer as die gedokumenteerde bron en beskou die JSON as 'n gegenereerde kopie wat jy enige tyd weer kan maak.

Waarom het NO of off in false verander?

Ontleders wat YAML 1.1 volg, lees yes, no, on en off as booleaanse waardes, so 'n landkode soos NO vir Noorweë kan false word. YAML 1.2 beperk booleaanse waardes tot true en false, maar nie elke instrument volg dit nie. Sit sulke waardes in aanhalingstekens in die YAML, soos "NO", dan bly hulle strings in die JSON.

Kan ek 'n CloudFormation-sjabloon in YAML omskakel?

AWS CloudFormation aanvaar albei formate, maar die kortetikette soos !Ref en !GetAtt bestaan net in YAML. JSON-sjablone skryf dit as volle funksies, {"Ref": "MyBucket"} of {"Fn::GetAtt": [...]}. Skryf kortetikette in die lang vorm voor jy omskakel sodat die JSON-sjabloon geldig bly.

Hoe skakel ek die ander kant toe om?

Gebruik JSON na YAML. Dit is die gewone rigting wanneer 'n API-antwoord of 'n gegenereerde lêer 'n leesbare konfigurasielêer in 'n bewaarplek moet word.