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á
Jak používat: YAML na JSON
- Vložte YAML do levého pole nebo otevřete soubor
.yaml/.yml. - JSON se vpravo zobrazuje během psaní. Pro výstup zvolte 2 mezery, 4 mezery nebo tabulátory.
- Zaškrtněte Seřadit klíče pro abecední pořadí klíčů. Pomáhá to při porovnávání konfigurací.
- Pokud je YAML neplatný, stavový řádek ukáže řádek a sloupec a problematické řádky se zobrazí pod ním se značkou
^. - 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-02se 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: nohodnotufalse, takže kód NorskaNOzmizí. Totéž platí proyes,on,off,yan. YAML 1.2 považuje za logické hodnoty jentrueafalse. - Osmičková čísla:
0755je 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:30můž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?
Proč můj YAML selže s chybou „bad indentation“?
-) jsou pod nadřazeným klíčem odsazené jednotně.Co se stane s komentáři YAML?
Proč <code>no</code> zůstalo řetězcem?
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?
--- 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.