JSON, nebo YAML
Shrnutí: JSON vymezuje závorkami a YAML odsazením: stroje dostanou JSON, lidé upravující konfiguraci YAML. Komentáře, kotvy a struktura více dokumentů nepřežijí.

Stručně: JSON používejte pro data stroj-stroj a YAML pro konfiguraci, kterou upravují lidé; preferujte YAML, když potřebujete komentáře, víceřádkový text nebo kotvy, a JSON, když každý jazyk musí parsovat stejný payload bez nejednoznačnosti.
Vedle sebe
{
"server": {
"host": "127.0.0.1",
"port": 8080
}
}
server:
host: 127.0.0.1
port: 8080
Stejná struktura. YAML zahazuje interpunkci a získává místo pro komentář.
Kde se liší
| JSON | YAML | |
|---|---|---|
| Struktura | Závorky a čárky | Odsazení |
| Komentáře | Žádné | Ano |
| Řetězce | Dvojité uvozovky, vyžaduje escapování | Obvykle bez uvozovek |
| Víceřádkový text | Escape sekvence \n nebo pole |
Blokové skaláry ` |
| Znovupoužití | Žádné | Kotvy & a aliasy * |
| Více dokumentů | Obalte do pole | Oddělovače --- |
| Rychlost parsování | Rychlá | Pomalejší, pravidla odsazení |
| Nejistota | Velmi nízká | no parsované jako boolean, odsazení o jedna vedle |
Poslední řádek je skutečná cena YAML. V YAML 1.1 dává country: NO boolean false a version: 1.0 se může stát desetinným číslem. JSON nemá žádné implicitní typování.
Volba
JSON: těla požadavků a odpovědí, zprávy mezi službami, JSON sloupce v databázích, cokoli, co musí v každém jazyce parsovat identicky.
YAML: ekosystémy, kde je výchozím (Kubernetes, Ansible, GitHub Actions, Docker Compose); konfigurace, která potřebuje vysvětlení; soubory ovládané dlouhým textem, například certifikáty, skripty nebo SQL.
Co převod ztrácí
YAML → JSON: všechny komentáře, znovupoužití kotev (expandované do duplikátů), všechny dokumenty kromě prvního a původní zápis dat a booleanů.
JSON → YAML: rozlišení řetězec/číslo slábne, takže "8080" i 8080 potřebují explicitní uvozovky, aby zůstaly bezpečné.
Převádějte kvůli migracím a jednorázovému prozkoumání. Neudržujte stejný soubor ve dvou formátech jako paralelní náhledy.
Časté dotazy
Jak se rozhodnout mezi JSON a YAML?
Začněte tím, kdo soubor čte a udržuje: JSON použijte, když ho generuje program, překračuje hranice jazyků a musí se parsovat předvídatelně; YAML použijte, když ho upravuje člověk a potřebuje vysvětlení polí nebo dlouhý víceřádkový text. Převádějí se mezi sebou, ale neudržujte stejnou konfiguraci dlouhodobě v obou formátech.
Proč YAML produkuje více typové nejednoznačnosti?
YAML má implicitní typování, takže hodnoty jako NO, on nebo 1.0 se mohou stát booleany, daty nebo čísly. JSON má jen explicitní typy: řetězec musí být v uvozovkách, což činí parsování napříč jazyky předvídatelnější.
Mají komentáře a kotvy přežít převod YAML do JSON?
Ne. Komentáře, kotvy a více dokumentů YAML nelze v JSON reprezentovat; kotvy se expandují do duplikovaného obsahu. Pokud je potřebujete zachovat, použijte knihovnu YAML s Document API, místo obousměrného převodu přes objekt.