YAML za JSON pretvornik
Hitra in varna pretvorba YAML v JSON. Popoln za konfiguracijske datoteke in analizo podatkov.
Hitra in varna pretvorba YAML v JSON. Popoln za konfiguracijske datoteke in analizo podatkov.
YAML in JSON sta tesno povezana formata – JSON je tehnično stroga podmnožica YAML 1.2 – in pretvorba med njima je običajno enostavna. YAML dodaja ljudem prijazne funkcije, ki jih JSON nima: komentarje, večvrstične nize brez ubežnikov, sklicevanja na sidra in vzdevke, bolj prilagodljivo navajanje in strukturo na podlagi zamikov, ki je podobna naravni postavitvi dokumenta. Zaradi tega je YAML priljubljena izbira za konfiguracijske datoteke (manifesti Kubernetes, poteki dela GitHub Actions, Docker Compose), medtem ko JSON prevladuje nad uporabnimi obremenitvami API-ja.
Pretvarjanje YAML v JSON običajno pomeni opustitev človeku prijaznih dodatkov YAML v zameno za format, ki ga stroji lažje razčlenijo in je lingua franca API-jev HTTP. Komentarji so izpuščeni (JSON jih nima). Sklici sidra se razrešijo v njihove referenčne vrednosti. Večvrstični nizi se strnejo v standardne nize JSON z vdelanimi novimi vrsticami.
Ta pretvornik razčlenjuje YAML z uporabo js-yaml, najpogosteje uporabljene knjižnice YAML v JavaScriptu. Izhod je ustvarjen z uporabo JSON.stringify z neobveznim zamikom. Pretvorba obravnava vso standardno sintakso YAML 1.2, vključno s slogom poteka, slogom blokov, skalarji, zaporedji, preslikavami, sidri, vzdevki in standardnimi vrstami oznak.
Večina API-jev in veliko programskih okolij pričakuje JSON. Konfiguracijske datoteke, napisane v YAML, je treba pri integraciji s kodo ali storitvami, ki sprejemajo samo JSON, pretvoriti v JSON. Orodja za JSON so prav tako bogatejša: jq, JSON Path, JSON Schema in širok ekosistem validatorjev in transformatorjev vsi predpostavljajo vnos JSON.
JSON je tudi nedvoumen na načine, ki jih YAML ni. Prilagodljivost YAML ustvarja presenečenja pri razčlenjevanju — nizi, kot je 'no', razčlenjevanje kot logična vrednost false v YAML 1.1, razčlenjevanje nizov različice kot lebdeči, napake pri zamiku, ki povzročajo tihe strukturne spremembe. Pretvorba v JSON zamrzne podatke v manj dvoumno obliko.
Prilepite YAML, pridobite JSON.
js-yaml implementira YAML 1.2 z izbirno podporo za domislice YAML 1.1 (težava 'ne'-as-false, osmiška števila brez predpone 0o). Razčlenjevalnik ustvari drevo predmetov JavaScript z uporabo izvornih tipov: številk, nizov, logičnih vrednosti, ničelnih vrednosti, nizov in navadnih predmetov.
JSON.stringify serializira drevo objektov v JSON. Izbirni zamik ustvari lepo natisnjen izpis; brez njega je rezultat kompakten enovrstični JSON. Posebne vrednosti (NaN, Infinity, nedefinirano) niso veljavni JSON; pretvornik jih prisili v nič, kjer so prisotni.
Robni primeri: časovni žigi YAML postanejo nizi ISO-8601 v JSON. Binarni podatki YAML (kodirani z base64) postanejo niz. Sidra in vzdevki so v JSON razrešeni v podvojene vrednosti, ker JSON nima referenčne sintakse.