JSON to YAML

Převod JSON do formátu YAML

Zkusit příklad

Vstup JSON

Výstup YAML

Běží lokálně · Bezpečné pro vkládání tajných údajů
YAML se zobrazí zde…

Co je převod JSON na YAML?

Převod JSON na YAML transformuje data z formátu JavaScript Object Notation do formátu YAML Ain't Markup Language. Oba formáty reprezentují stejné datové struktury (objekty, pole, řetězce, čísla, logické hodnoty, null), ale používají odlišnou syntaxi. JSON se opírá o složené závorky, hranaté závorky a čárky. YAML používá odsazení a konce řádků, čímž vytváří výstup, který je blíže prostému textu. Na rozdíl od XML ani jeden formát nevyžaduje schéma.

YAML byl navržen jako datový serializační formát přívětivý pro člověka. Je to výchozí konfigurační jazyk pro Kubernetes manifesty, Docker Compose soubory, Ansible playbooky, GitHub Actions workflows a mnoho CI/CD systémů. Pokud jsou vaše zdrojová data ve formátu JSON a váš cílový systém očekává YAML, potřebujete převodník, který spolehlivě zachová každou hodnotu, typ a úroveň vnoření přesně bez ztráty dat.

Převod JSON na YAML online je užitečný, když obdržíte API odpovědi nebo exportovaná data ve formátu JSON a potřebujete je vložit do konfiguračního souboru YAML. Převod je bezztrátový pro všechny standardní typy JSON: řetězce, čísla, logické hodnoty, null, pole a objekty se mapují přímo na jejich YAML ekvivalenty. Hodnoty obsahující dvojtečky nebo speciální znaky jsou automaticky uzavřeny do uvozovek, takže výstup je platný YAML.

Proč převádět JSON na YAML?

YAML je standard pro konfigurační soubory; JSON je to, co vrací API. Převod mezi nimi vám umožňuje používat správný formát pro každý úkol bez ručního přepisování dat.

Okamžitý převod
Vložte JSON a získejte YAML výstup ihned. Žádné čekání na zpracování serverem, žádné nahrávání souborů, žádné limity požadavků.
🔒
Zpracování s důrazem na soukromí
Vaše data nikdy neopustí prohlížeč. Převod probíhá výhradně v JavaScriptu na vašem zařízení, takže přihlašovací údaje, tokeny a API klíče zůstávají soukromé.
🔀
Zvládne jakoukoli strukturu JSON
Hluboce vnořené objekty, velká pole, smíšené typy, Unicode řetězce a speciální znaky se převádějí správně. Nástroj zachovává celou datovou strukturu.
📋
Bez účtu nebo instalace
Otevřete stránku a začněte převádět. Bez registrace, bez rozšíření, bez CLI nástroje k instalaci. Funguje na jakémkoli zařízení s prohlížečem.

Případy použití JSON na YAML

Kubernetes a Docker Compose
API odpovědi a exportované konfigurace přicházejí často ve formátu JSON. Převeďte je na YAML pro přímé použití v Kubernetes manifestech, Helm chartech a Docker Compose souborech.
Konfigurace CI/CD pipeline
GitHub Actions, GitLab CI, CircleCI a Azure Pipelines používají YAML. Při programovém generování konfigurací pipeline z JSON převeďte výstup před odevzdáním.
Ansible playbooky
Ansible očekává YAML pro playbooky a soubory inventáře. Převeďte exporty inventáře JSON z cloudových API do formátu YAML, který Ansible vyžaduje.
Inspekce API odpovědí
REST API vrací JSON. Převedením vnořené odpovědi na YAML je hierarchie dat viditelná na první pohled, což je rychlejší pro čtení než JSON plný závorek.
Migrace konfiguračních souborů
Při migraci aplikace z konfigurace ve formátu JSON (např. tsconfig.json, package.json exports) na nástroje založené na YAML hromadně převeďte hodnoty místo jejich ručního přepisování.
Výuka a dokumentace
Studenti a techničtí pisatelé používají JSON/YAML vedle sebe, aby pochopili, jak se datové struktury mapují mezi formáty. Převodník poskytuje okamžité a přesné příklady.

Srovnání JSON a YAML

JSON a YAML mohou reprezentovat stejná data, ale jejich syntaxe a možnosti se liší způsoby, které jsou důležité pro konkrétní případy použití.

VlastnostJSONYAML
SyntaxCurly braces, square brackets, colons, commasIndentation-based, colons, dashes
ReadabilityModerate — nested brackets become denseHigh — visual hierarchy from indentation
CommentsNot allowed (RFC 8259)Supported with #
Multi-line stringsEscape sequences only (\n)Block scalars with | or >
Data typesstring, number, boolean, null, object, arraySame plus date, timestamp, binary
File sizeSlightly larger (brackets + quotes)Slightly smaller (no brackets)
Trailing commasNot allowedNot applicable (no commas)
SpecRFC 8259 / ECMA-404YAML 1.2 (yaml.org)

Záludnosti YAML po převodu

YAML má pravidla parsování, která překvapují vývojáře zvyklé na JSON. Tyto čtyři problémy způsobují nejvíce chyb při práci s převedeným výstupem.

Nekótované yes/no se stávají logickými hodnotami
Parsery YAML 1.1 považují holé yes, no, on, off, true a false za logické hodnoty. Pokud váš JSON obsahuje řetězcovou hodnotu "yes" nebo "no", může YAML výstup ztratit uvozovky a být parsován jako logická hodnota staršími nástroji. YAML 1.2 omezuje toto chování pouze na true/false.
Chyby odsazení narušují parsování
YAML používá odsazení k definování struktury. Jeden navíc nebo chybějící mezera může změnit význam nebo způsobit chybu parsování. Na rozdíl od JSON, kde chybně umístěná čárka dá jasnou chybu, mohou chyby odsazení v YAML tiše změnit hierarchii dat.
Dvojtečky v hodnotách vyžadují uvozovky
Dvojtečka následovaná mezerou (": ") je oddělovač klíč-hodnota v YAML. Pokud váš JSON řetězec obsahuje tuto sekvenci (např. "http://example.com"), musí YAML výstup hodnotu uzavřít do uvozovek. Většina převodníků to zpracuje automaticky.
Soubory s více dokumenty
YAML podporuje více dokumentů v jednom souboru oddělených ---. JSON nemá ekvivalent. Při převodu JSON pole konfigurací se každý prvek může stát samostatným YAML dokumentem nebo zůstat jako položka pole. Zjistěte, který formát váš cílový nástroj očekává.

Příklady kódu

Programový převod JSON na YAML vyžaduje v většině jazyků knihovnu pro serializaci YAML. Standardní knihovna zvládá parsování JSON; pro výstup YAML je potřeba další balíček.

JavaScript (Node.js)
import YAML from 'js-yaml'

const json = '{"host":"localhost","port":3000,"debug":true}'
const obj = JSON.parse(json)
const yamlStr = YAML.dump(obj, { indent: 2 })
console.log(yamlStr)
// → host: localhost
// → port: 3000
// → debug: true
Python
import json, yaml

json_str = '{"host": "localhost", "port": 3000, "debug": true}'
data = json.loads(json_str)
yaml_str = yaml.dump(data, default_flow_style=False, sort_keys=False)
print(yaml_str)
# → host: localhost
# → port: 3000
# → debug: true
Go
package main

import (
    "encoding/json"
    "fmt"
    "gopkg.in/yaml.v3"
)

func main() {
    jsonStr := `{"host":"localhost","port":3000,"debug":true}`
    var data map[string]interface{}
    json.Unmarshal([]byte(jsonStr), &data)

    yamlBytes, _ := yaml.Marshal(data)
    fmt.Println(string(yamlBytes))
    // → debug: true
    // → host: localhost
    // → port: 3000
}
CLI (yq / jq + Python)
# Using yq (https://github.com/mikefarah/yq)
echo '{"host":"localhost","port":3000}' | yq -P
# → host: localhost
# → port: 3000

# Using Python one-liner
echo '{"host":"localhost","port":3000}' | python3 -c "import sys,json,yaml; print(yaml.dump(json.load(sys.stdin), default_flow_style=False))"

Časté dotazy

Je převod JSON na YAML bezztrátový?
Ano, pro všechny standardní typy JSON. Řetězce, čísla, logické hodnoty, null, pole a objekty mají přímé YAML ekvivalenty. Převedený YAML lze zparsovat zpět a získat identická data. Jediný kosmetický rozdíl je formátování: YAML používá odsazení místo závorek.
Může YAML reprezentovat vše, co JSON?
Ano. YAML je nadmnožinou JSON (od verze YAML 1.2). Každý platný JSON dokument je zároveň platným YAML dokumentem. YAML přidává funkce, které JSON postrádá: komentáře, kotvy a aliasy, víceřádkové řetězce a další skalární typy jako data.
Proč Kubernetes a Docker používají YAML místo JSON?
YAML podporuje komentáře, které jsou klíčové pro dokumentaci infrastrukturní konfigurace. Je také čitelnější pro hluboce vnořené struktury, protože odsazení nahrazuje závorky. Kubernetes ve skutečnosti přijímá JSON i YAML, ale komunita a veškerá oficiální dokumentace používá YAML.
Jak zpracovat velké soubory JSON?
Tento převodník běží ve vašem prohlížeči, takže zvládne soubory o velikosti několika megabajtů bez problémů. Pro velmi velké soubory (50 MB+) použijte CLI nástroj jako yq nebo Python skript s knihovnou PyYAML. Tyto nástroje zpracovávají data jako proud a využívají méně paměti.
Zachovává převodník pořadí klíčů?
Ano. Převodník vypisuje YAML klíče ve stejném pořadí, v jakém se vyskytují ve vstupním JSON. JSON objekty jsou technicky neseřazené podle specifikace, ale v praxi parsery zachovávají pořadí vkládání a tento nástroj toto pořadí v YAML výstupu udržuje.
Jakou verzi YAML výstup dodržuje?
Výstup dodržuje konvence YAML 1.2. To znamená, že pouze true a false jsou považovány za logické literály (nikoli yes/no/on/off). Řetězce, které by mohly být chybně interpretovány, jsou automaticky uzavřeny do uvozovek, aby se předešlo nejednoznačnosti parsování.
Je bezpečné vkládat do tohoto nástroje API klíče a tokeny?
Ano. Převod probíhá výhradně ve vašem prohlížeči pomocí JavaScriptu. Žádná data se nepřenáší na žádný server. Můžete to ověřit otevřením síťového inspektoru prohlížeče a sledováním, že při převodu nejsou odesílány žádné požadavky.