YAML na Konvertor JSON
Rýchla a bezpečná konverzia YAML na JSON. Ideálne pre konfiguračné súbory a analýzu údajov.
Rýchla a bezpečná konverzia YAML na JSON. Ideálne pre konfiguračné súbory a analýzu údajov.
YAML a JSON sú úzko súvisiace formáty – JSON je technicky striktnou podmnožinou YAML 1.2 – a prevod medzi nimi je zvyčajne jednoduchý. YAML pridáva funkcie priateľské k ľuďom, ktoré JSON chýbajú: komentáre, viacriadkové reťazce bez escapovania, odkazy na kotvy a aliasy, flexibilnejšie citácie a štruktúru založenú na odsadení, ktorá pripomína prirodzené rozloženie dokumentu. Vďaka tomu je YAML populárnou voľbou pre konfiguračné súbory (manifesty Kubernetes, pracovné postupy GitHub Actions, Docker Compose), zatiaľ čo JSON dominuje v užitočných zaťaženiach API.
Konverzia YAML na JSON zvyčajne znamená vzdať sa funkcií YAML vhodných pre ľudí výmenou za formát, ktorý stroje ľahšie analyzujú a ktorý je lingua franca HTTP API. Komentáre sú vypustené (JSON nemá žiadne). Odkazy na kotvy sú rozložené na ich referenčné hodnoty. Viacriadkové reťazce sa zrútia na štandardné reťazce JSON s vloženými novými riadkami.
Tento prevodník analyzuje YAML pomocou js-yaml, najpoužívanejšej knižnice YAML v JavaScripte. Výstup sa generuje pomocou JSON.stringify s voliteľným odsadením. Konverzia spracováva všetky štandardné syntaxe YAML 1.2 vrátane štýlu toku, štýlu bloku, skalárov, sekvencií, mapovaní, kotiev, aliasov a štandardných typov značiek.
Väčšina rozhraní API a mnoho programovacích prostredí očakáva JSON. Konfiguračné súbory napísané v YAML je potrebné previesť na JSON pri integrácii s kódom alebo službami, ktoré akceptujú iba JSON. Nástroje pre JSON sú tiež hojnejšie: jq, JSON Path, JSON Schema a široký ekosystém validátorov a transformátorov všetky predpokladajú vstup JSON.
JSON je tiež jednoznačný v tom, ako YAML nie je. Flexibilita YAML vytvára prekvapenia pri analýze – reťazce ako 'no' analyzujú ako boolean false v YAML 1.1, reťazce verzie analyzujú ako plávajúce, chyby odsadenia spôsobujúce tiché štrukturálne zmeny. Konverzia na JSON zmrazí údaje do menej nejednoznačnej podoby.
Prilepte YAML a získajte JSON.
js-yaml implementuje YAML 1.2 s voliteľnou podporou pre zvláštnosti YAML 1.1 (problém 'nie'-as-false, osmičkové čísla bez predpony 0o). Syntaktický analyzátor vytvára strom objektov JavaScript pomocou natívnych typov: čísla, reťazce, boolovské hodnoty, hodnoty null, polia a obyčajné objekty.
JSON.stringify serializuje strom objektov na JSON. Voliteľné odsadenie vytvára pekne vytlačený výstup; bez neho je výsledkom kompaktný jednoriadkový JSON. Špeciálne hodnoty (NaN, Infinity, undefined) nie sú platné JSON; prevodník ich vynúti, ak sú prítomné.
Okrajové prípady: Časové pečiatky YAML sa stanú reťazcami ISO-8601 v JSON. Binárne dáta YAML (zakódované v base64) sa stanú reťazcom. Kotvy a aliasy sú v JSON rozložené na duplicitné hodnoty, pretože JSON nemá žiadnu referenčnú syntax.