Převodník YAML na JSON

Vložte YAML (manifesty Kubernetes, Docker Compose, konfigurace CI) a okamžitě získejte čistý JSON. Chyby ukazují přesný řádek se značkou.

Běží v prohlížečiBez registraceNic se neodesílá

Výstupní JSON

Jak používat: YAML na JSON

  1. Vložte YAML do levého pole nebo otevřete soubor .yaml/.yml.
  2. JSON se vpravo zobrazuje během psaní. Pro výstup zvolte 2 mezery, 4 mezery nebo tabulátory.
  3. Zaškrtněte Seřadit klíče pro abecední pořadí klíčů. Pomáhá to při porovnávání konfigurací.
  4. Pokud je YAML neplatný, stavový řádek ukáže řádek a sloupec a problematické řádky se zobrazí pod ním se značkou ^.
  5. Zkopírujte nebo stáhněte JSON, nebo stiskněte Prohodit a převeďte ho zpět na YAML.

Jak se YAML mapuje na JSON

JSON je podmnožinou YAML 1.2, takže každé mapování YAML se stane objektem JSON, každá sekvence polem a skaláry řetězci, čísly, logickými hodnotami nebo null. Vlastnosti dostupné jen v YAML se při převodu vyřeší:

  • Komentáře (# …) se zahodí, protože JSON komentáře nemá.
  • Kotvy a aliasy (&base, *base, <<: *base) se rozbalí na plné kopie.
  • Časová razítka jako 2024-01-02 se stanou řetězci ISO 8601.
  • Víceřádkové řetězce (literální bloky | a skládané >) se stanou obyčejnými řetězci s \n.

YAML s více dokumenty

Jeden soubor může obsahovat několik dokumentů YAML oddělených ---, jak je běžné u manifestů Kubernetes. JSON nemá ekvivalent, proto převodník vrátí pole JSON s jedním prvkem na dokument a oznámí to ve stavovém řádku. Osamocené koncové --- se ignoruje.

Záludnosti YAML 1.1 vs. 1.2

Tento převodník se řídí YAML 1.2, aktuální specifikací. Mnoho starších nástrojů (PyYAML, Psych v Ruby, některé verze Kubernetes a Ansible) stále čte YAML 1.1, kde platí jiná pravidla:

  • Norský problém: v YAML 1.1 znamená country: no hodnotu false, takže kód Norska NO zmizí. Totéž platí pro yes, on, off, y a n. YAML 1.2 považuje za logické hodnoty jen true a false.
  • Osmičková čísla: 0755 je v 1.1 osmičkové, ale v 1.2 obyčejné desítkové číslo; 1.2 používá 0o755. Pro jistotu dávejte práva souborů do uvozovek.
  • Šedesátková čísla: v 1.1 se 22:30 může rozparsovat jako číslo 1350. Časy a mapování portů jako "8080:80" dávejte do uvozovek.

Směr JSON → YAML dává nejednoznačné řetězce ('no', 'on', 'y') do uvozovek automaticky, takže vytvořený YAML se v obou verzích čte stejně.

Časté dotazy

Odesílá se můj YAML někam?
Ne. Parsování probíhá ve vašem prohlížeči pomocí open-source knihovny js-yaml. Konfigurace s tajemstvími nebo interními názvy hostů nikdy neopustí váš počítač.
Proč můj YAML selže s chybou „bad indentation“?
Vnoření v YAML určují mezery a tabulátory nejsou pro odsazení povoleny. Ujistěte se, že sourozenecké klíče jsou přesně zarovnané a položky seznamu (-) jsou pod nadřazeným klíčem odsazené jednotně.
Co se stane s komentáři YAML?
Odstraní se. JSON nemá syntaxi pro komentáře, takže je nelze přenést. Zpětný převod na YAML je neobnoví.
Proč <code>no</code> zůstalo řetězcem?
Tento nástroj se řídí YAML 1.2, kde jsou logickými hodnotami jen true/false. Starší parsery YAML 1.1 by z no, yes, on a off udělaly logické hodnoty („norský problém“).
Mohu převést manifest Kubernetes s několika prostředky?
Ano. Každý prostředek oddělený --- se stane jedním prvkem výstupního pole JSON, připraveného pro jq nebo kubectl apply -f -, který přijímá i seznamy JSON.

Související nástroje