YAML na Převaděč JSON
Rychlý a bezpečný převod YAML na JSON. Ideální pro konfigurační soubory a analýzu dat.
Rychlý a bezpečný převod YAML na JSON. Ideální pro konfigurační soubory a analýzu dat.
YAML a JSON jsou úzce příbuzné formáty — JSON je technicky striktní podmnožina YAML 1.2 — a převod mezi nimi je obvykle jednoduchý. YAML přidává funkce přátelské k lidem, které JSON postrádají: komentáře, víceřádkové řetězce bez escapování, odkazy na kotvy a aliasy, flexibilnější citace a strukturu založenou na odsazení, která se podobá přirozenému rozvržení dokumentu. Díky tomu je YAML oblíbenou volbou pro konfigurační soubory (manifesty Kubernetes, pracovní postupy GitHub Actions, Docker Compose), zatímco JSON dominuje užitečným zatížením API.
Převod YAML na JSON obvykle znamená vzdát se funkcí YAML, které jsou přívětivé pro člověka, výměnou za formát, který stroje snadněji analyzují a to je lingua franca HTTP API. Komentáře jsou vynechány (JSON žádné nemá). Odkazy na kotvy se rozloží na jejich referenční hodnoty. Víceřádkové řetězce se sbalí na standardní řetězce JSON s vloženými novými řádky.
Tento převodník analyzuje YAML pomocí js-yaml, nejrozšířenější knihovny YAML v JavaScriptu. Výstup je generován pomocí JSON.stringify s volitelným odsazením. Konverze zpracovává veškerou standardní syntaxi YAML 1.2 včetně stylu toku, stylu bloku, skalárů, sekvencí, mapování, kotev, aliasů a standardních typů značek.
Většina rozhraní API a mnoho programovacích prostředí očekává JSON. Konfigurační soubory napsané v YAML je třeba při integraci s kódem nebo službami, které přijímají pouze JSON, převést na JSON. Nástroje pro JSON jsou také hojnější: jq, JSON Path, JSON Schema a široký ekosystém validátorů a transformátorů všechny přebírají vstup JSON.
JSON je také jednoznačný v tom, jak YAML není. Flexibilita YAML vytváří při analýze překvapení – řetězce jako 'ne' analyzují jako boolean false v YAML 1.1, řetězce verzí analyzují jako plovoucí, chyby odsazení vytvářející tiché strukturální změny. Převod do JSON zmrazí data do méně nejednoznačné podoby.
Vložte YAML a získejte JSON.
js-yaml implementuje YAML 1.2 s volitelnou podporou pro zvláštnosti YAML 1.1 (problém 'ne'-as-false, osmičková čísla bez předpony 0o). Analyzátor vytváří strom objektů JavaScript pomocí nativních typů: čísla, řetězce, booleovské hodnoty, null, pole a prosté objekty.
JSON.stringify serializuje strom objektů na JSON. Volitelné odsazení vytváří pěkně vytištěný výstup; bez něj je výsledkem kompaktní jednořádkový JSON. Speciální hodnoty (NaN, Infinity, undefined) nejsou platné JSON; převodník je vynutí, pokud jsou přítomny.
Okrajové případy: Časová razítka YAML se stanou řetězci ISO-8601 v JSON. Binární data YAML (zakódovaná v base64) se stanou řetězcem. Kotvy a aliasy jsou v JSON přeloženy do duplicitních hodnot, protože JSON nemá žádnou referenční syntaxi.