Vstupní YAML
Výsledek
Jak YAML validator použít
- Vložte YAML do levého pole. Kontrola běží při psaní, na nic klikat nemusíte.
- Když je syntaxe v pořádku, zobrazí se naformátovaný výstup a statistiky dokumentu.
- Při chybě dostanete číslo řádku, sloupce a výřez zdroje s ukazatelem na problémové místo.
- Vyberte odsazení dvěma nebo čtyřmi mezerami a výsledek si zkopírujte.
Nejčastější chyby v YAML souboru
Tabulátor. YAML ho pro odsazení zakazuje úplně a chyba se špatně hledá, protože v editoru vypadá tabulátor stejně jako mezery. Nastavte si v editoru převod tabulátorů na mezery a máte pokoj.
Druhým kandidátem je nekonzistentní odsazení uvnitř jednoho bloku. Klíče na stejné úrovni musí mít stejný počet mezer. Stačí jedna navíc a parser skončí s hláškou o špatném zanoření o několik řádků dál, než kde je skutečná příčina.
Dvojtečka v hodnotě bez uvozovek. Zápis title: Chyba: nenalezeno parser rozdělí na klíč a hodnotu podle první dvojtečky a zbytek ho zmate. Hodnotu s dvojtečkou dejte do uvozovek.
Proč se z hodnoty no stane false
YAML 1.1 bere slova yes, no, on a off jako pravdivostní hodnoty. Když napíšete country: NO a myslíte tím Norsko, dostanete false. Přezdívá se tomu norský problém a naráží na něj hlavně kód, který pracuje s kódy zemí.
YAML 1.2 to napravil a pravdivostní nechává jen true a false. Tenhle nástroj pracuje podle novější specifikace, takže NO vám vrátí jako text. Jenže Ansible, PyYAML a další rozšířené parsery zůstávají u verze 1.1, takže stejný soubor se jinde přečte jinak.
Nástroj proto na taková slova bez uvozovek upozorní a vypíše řádky, kterých se to týká. Dejte je do uvozovek a soubor se bude chovat stejně všude.
Co se stane s komentáři
Komentáře při formátování zmizí. Parser je nepovažuje za data, takže se do stromu vůbec nedostanou a při zpětném výpisu není co obnovit. Týká se to všech běžných knihoven, které pracují nad datovým modelem.
Nástroj proto při komentářích ve vstupu napíše varování. U konfiguračních souborů, kde komentáře nesou půlku informace, si výstup porovnejte s originálem a komentáře vraťte ručně.
YAML a JSON: kdy použít co
Každý platný JSON je zároveň platný YAML, protože YAML 1.2 je jeho nadmnožinou. Opačně to neplatí. YAML navíc umí komentáře, kotvy, víceřádkové bloky a několik dokumentů v jednom souboru.
Pro konfiguraci, kterou čtou lidé, se hodí YAML. Pro strojovou výměnu dat po síti je jednodušší a bezpečnější JSON, protože nemá tolik nejednoznačností. Převod mezi oběma formáty zvládne převodník YAML na JSON a hotový JSON pak zpřehlední JSON formátovač.
Časté otázky
Odesílá se můj soubor na server?
Ne. Parsování i formátování běží v prohlížeči, takže ani produkční values.yaml neopustí váš počítač.
Umí nástroj kotvy a merge klíče?
Ano. Kotvy &, odkazy * i merge klíč << se při zpracování rozvinou. Ve výstupu proto uvidíte hodnoty vypsané naplno, ne odkaz. Je to správné chování, jen počítejte s tím, že výstup bude delší než vstup.
Zvládne víc dokumentů v jednom souboru?
Ano, dokumenty oddělené --- zpracuje všechny a jejich počet uvidíte ve statistikách.
Proč se mi dlouhé číslo zaokrouhlilo?
Čísla se zpracovávají jako JavaScriptový typ number, který přesně pojme celá čísla zhruba do 9 biliard. Delší identifikátory ztratí poslední číslice. Pokud jde o identifikátor, a ne o počítanou hodnotu, dejte ho do uvozovek a zůstane řetězcem.