UltKit

Převodník YAML do JSON

Převeďte konfiguraci v YAML, specifikace OpenAPI a soubory CI do JSON, který přečte každý parser, API i validátor schémat. Nahrajte soubory .yaml nebo .yml a stáhněte odsazený JSON.

Převodník dat

nebo sem přetáhněte soubory CSV, TSV, TXT … ·

Max. 95 MB na soubor· Až 20 souborů· Smazáno po 30 minutách

Výstup

Soubory se zpracovávají na našich serverech a po 30 minutách se smažou.

Jak nástroj používat

  1. 1

    Nahrajte soubory YAML

    Přidejte soubory .yaml nebo .yml, najednou až 20 souborů po 95 MB. Původní názvy zůstanou zachovány, soubory JSON dostanou stejný název s novou příponou.

  2. 2

    Zvolte odsazený, nebo kompaktní výstup

    Volba Čitelné formátování je zapnutá, JSON se odsadí pro snadné čtení a revizi kódu. Chcete-li jednořádkový soubor pro vložení do těla požadavku, vypněte ji v části Pokročilá nastavení.

  3. 3

    Převeďte a použijte

    Klikněte na Převést na JSON, soubor stáhněte a předejte ho API, validátoru nebo skriptu, který ho potřeboval.

Proč vývojáři převádějí YAML do JSON

YAML je psaný pro lidi: odsazení místo složených závorek, komentáře, většina řetězců bez uvozovek. Proto je to formát manifestů Kubernetes, workflow GitHub Actions, souborů Docker Compose a specifikací OpenAPI, které týmy upravují ručně. JSON je psaný pro programy. Každý jazyk má parser JSON ve standardní knihovně, prohlížeče ho zpracují nativně a většina HTTP API nepřijímá nic jiného.

Převod se tedy provádí na hranici systémů. Platformní inženýr pošle manifest přes jq, který čte jen JSON. Backendový vývojář předá specifikaci OpenAPI generátoru kódu, který chce JSON. Tester načte testovací data napsaná v YAML do testů v JavaScriptu. V každém případě zůstává zdrojem pravdy YAML a JSON je build artefakt. Pro celou složku feedů nebo exportů místo konfigurací poslouží stejně XML do JSON pro starší značkovací formát.

Jak se YAML a JSON vyvíjely společně

YAML poprvé navrhl Clark Evans
2001
YAML 1.2 udělalo z JSON podmnožinu YAML
2009
RFC 8259, současný standard JSON
2017
Vydána revize YAML 1.2.2
2021

Co se v JSON stane s funkcemi, které má jen YAML

Kotva (&defaults) a její aliasy (*defaults) umožňují v YAML znovu použít blok. JSON odkazy nemá, proto se každý alias nahradí úplnou kopií bloku s kotvou.

  • JSON může být výrazně delší než YAML
  • Klíče pro sloučení (<<: *defaults) se rozvinou stejně
Malá konfigurace YAML jako čitelně formátovaný JSON
{
  "service": "billing",
  "replicas": 3,
  "ports": [8080, 9090],
  "env": {
    "LOG_LEVEL": "info",
    "REGION": "NO"
  }
}

Fakta o formátech YAML a JSON

YAML

YAML

YAML („YAML Ain't Markup Language“) je datový formát přívětivý pro člověka, poprvé vydaný v roce 2001. Místo závorek používá odsazení, podporuje komentáře a je nadmnožinou JSON. Hojně se používá pro konfiguraci v Docker Compose, Kubernetes, GitHub Actions a mnoha aplikacích. Spoléhání na bílé znaky způsobuje, že jej lze rozbít jedinou špatně umístěnou mezerou, a některé hodnoty, například „no“ nebo data, se mohou vyložit nečekaně.

Komprese
–
Průhlednost
–
Animace
–
Představeno
2001 · Clark Evans, Ingy döt Net, Oren Ben-Kiki
Převodník YAML

JSON

JavaScript Object Notation

JSON je odlehčený textový formát pro strukturovaná data, který na počátku 21. století zpopularizoval Douglas Crockford a který je standardizován jako RFC 8259 a ECMA-404. Pomocí jednoduché čitelné syntaxe popisuje objekty, pole, řetězce, čísla, booleovské hodnoty a null. Je výchozím formátem webových API, konfiguračních souborů a výměny dat mezi aplikacemi téměř v každém programovacím jazyce. Nemá vestavěné komentáře, data ani schémata a rozsáhlé vnořené soubory se bez prohlížeče špatně čtou.

Komprese
–
Průhlednost
–
Animace
–
Představeno
2001 · Douglas Crockford
Převodník JSON

YAML se převádí na JSON, když konfigurace nebo specifikace psaná pro lidi musí posloužit stroji: požadavku na API, validátoru schématu nebo nástroji bez parseru YAML.

Časté dotazy k převodu YAML do JSON

Proč převádět YAML do JSON, když obsahují stejná data?

Protože mnoho nástrojů umí zpracovat jen jeden z nich. Čtečky JSON jsou součástí každého programovacího jazyka i prohlížeče, zatímco YAML vyžaduje další knihovnu. Těla požadavků pro REST API, validátory JSON Schema, jq i soubory jako package.json nebo manifest.json rozšíření prohlížeče očekávají JSON.

Co se stane s komentáři v YAML?

Zahodí se. RFC 8259 žádnou syntaxi komentářů pro JSON nezná, takže řádky začínající # nemají kam jít. Soubor YAML ponechte jako zdroj s dokumentací a JSON berte jako vygenerovanou kopii, kterou můžete kdykoli vytvořit znovu.

Proč se NO nebo off změnilo na false?

Parsery podle YAML 1.1 čtou yes, no, on a off jako booleovské hodnoty, takže kód země NO pro Norsko se může změnit na false. YAML 1.2 omezuje booleany na true a false, ale ne každý nástroj ho dodržuje. Takové hodnoty uveďte v YAML v uvozovkách, třeba "NO", a v JSON zůstanou řetězci.

Mohu převést šablonu CloudFormation napsanou v YAML?

AWS CloudFormation přijímá oba formáty, ale krátké značky jako !Ref a !GetAtt existují jen v YAML. Šablony JSON je zapisují jako plné funkce, {"Ref": "MyBucket"} nebo {"Fn::GetAtt": [...]}. Před převodem přepište krátké značky do dlouhého tvaru, aby šablona JSON zůstala platná.

Jak převést soubor opačným směrem?

Použijte JSON do YAML. Je to obvyklý směr, když se odpověď API nebo vygenerovaný soubor má stát čitelným konfiguračním souborem v repozitáři.