YAML na JSON pretvarač
Brza i sigurna konverzija YAML u JSON. Savršeno za konfiguracijske datoteke i analizu podataka.
Brza i sigurna konverzija YAML u JSON. Savršeno za konfiguracijske datoteke i analizu podataka.
YAML i JSON blisko su povezani formati — JSON je tehnički striktni podskup YAML-a 1.2 — i pretvaranje između njih obično je jednostavno. YAML dodaje značajke prilagođene ljudima koje nedostaju JSON-u: komentare, nizove s više redaka bez bježanja, reference sidra i aliasa, fleksibilnije citiranje i strukturu temeljenu na uvlačenju koja nalikuje prirodnom rasporedu dokumenta. Zbog toga je YAML popularan izbor za konfiguracijske datoteke (Kubernetes manifesti, radni tijekovi GitHub Actions, Docker Compose), dok JSON dominira API korisnim opterećenjem.
Pretvaranje YAML-a u JSON obično znači odustajanje od YAML-ovih dodataka prilagođenih ljudima u zamjenu za format koji strojevi lakše analiziraju i koji je lingua franca HTTP API-ja. Komentari su izbačeni (JSON nema nijedan). Reference sidra rastavljaju se u svoje referentne vrijednosti. Višeredni nizovi sažimaju se u standardne JSON nizove s ugrađenim novim redovima.
Ovaj pretvarač analizira YAML koristeći js-yaml, najčešće korištenu YAML biblioteku u JavaScriptu. Izlaz se generira pomoću JSON.stringify s neobaveznim uvlačenjem. Konverzija obrađuje svu standardnu YAML 1.2 sintaksu uključujući stil tijeka, blok stil, skalare, sekvence, preslikavanja, sidra, pseudonime i standardne vrste oznaka.
Većina API-ja i mnoga programska okruženja očekuju JSON. Konfiguracijske datoteke napisane u YAML-u potrebno je pretvoriti u JSON prilikom integracije s kodom ili uslugama koje prihvaćaju samo JSON. Alati za JSON također su bogatiji: jq, JSON Path, JSON Schema i široki ekosustav validatora i transformatora pretpostavljaju JSON unos.
JSON je također nedvosmislen na način na koji YAML nije. Fleksibilnost YAML-a stvara iznenađenja pri raščlanjivanju — nizovi kao što je 'no' raščlanjivanje kao Boolean false u YAML 1.1, raščlanjivanje nizova verzija kao float, pogreške u uvlačenju proizvode tihe strukturne promjene. Pretvaranje u JSON zamrzava podatke u manje dvosmislen oblik.
Zalijepite YAML, nabavite JSON.
js-yaml implementira YAML 1.2 s opcijskom podrškom za YAML 1.1 hirove (problem 'no'-as-false, oktalni brojevi bez prefiksa 0o). Parser proizvodi stablo JavaScript objekata koristeći izvorne tipove: brojeve, nizove, booleove vrijednosti, null, nizove i obične objekte.
JSON.stringify serijalizira stablo objekata u JSON. Izborno uvlačenje proizvodi lijepo ispisan ispis; bez njega rezultat je kompaktni jednoredni JSON. Posebne vrijednosti (NaN, Infinity, nedefinirano) nisu važeći JSON; pretvarač ih prisiljava na nulu gdje su prisutni.
Rubni slučajevi: YAML vremenske oznake postaju ISO-8601 nizovi u JSON-u. YAML binarni podaci (kodirani base64) postaju niz. Sidra i pseudonimi se u JSON-u pretvaraju u duplicirane vrijednosti jer JSON nema referentnu sintaksu.