ToolDeck

YAML to JSON

Převod YAML do formátu JSON

Zkusit příklad

Vstup YAML

Výstup JSON

Běží lokálně · Bezpečné pro vkládání tajných údajů
JSON se zobrazí zde…
Vyzkoušejte také:YAML to XML

Co je převod YAML na JSON?

Převod YAML na JSON transformuje data zapsaná ve formátu YAML (YAML Ain't Markup Language) do formátu JSON (JavaScript Object Notation). Oba formáty reprezentují strukturovaná data jako páry klíč-hodnota, sekvence a vnořené objekty, ale liší se syntaxí. YAML používá odsazení a minimální interpunkci, zatímco JSON se opírá o složené závorky, hranaté závorky a povinné uvozovky. Převod mezi těmito formáty je běžný úkol při přesunu konfiguračních dat mezi systémy, které očekávají různé formáty.

YAML byl navržen pro čitelnost člověkem. Podporuje komentáře, víceřádkové řetězce, kotvy a aliasy — žádná z těchto vlastností v JSON neexistuje. Při převodu YAML na JSON jsou tyto vlastnosti specifické pro YAML vyřešeny: kotvy jsou rozvinuty do textu na místě, komentáře jsou zahozeny a víceřádkové bloky se stanou escapovanými řetězci. Výsledkem je platný JSON, který dokáže přečíst libovolný JSON parser.

Specifikace YAML 1.2 explicitně definuje JSON jako podmnožinu YAML, což znamená, že každý platný JSON dokument je zároveň platným YAML dokumentem. Opak neplatí. YAML dokumenty používající komentáře, kotvy nebo složené klíče nemají přímý ekvivalent v JSON a musí být při převodu zjednodušeny. Tento nástroj zpracovává převod automaticky a produkuje čistý, dobře formátovaný JSON z libovolného platného vstupu YAML.

YAML 1.2 Specification — yaml.org →

Proč používat online převodník YAML na JSON?

Ruční převod YAML na JSON je náchylný k chybám, zejména u hluboko vnořených struktur nebo víceřádkových hodnot. Převodník v prohlížeči poskytne výsledek okamžitě a zachytí syntaktické chyby YAML dříve, než se dostanou do vaší aplikace.

Okamžitý převod v prohlížeči
Vložte YAML a získejte formátovaný JSON výstup v řádu milisekund. Žádné CLI nástroje k instalaci, žádný krok sestavení, žádné závislosti ke správě.
🔀
Zvládne jakoukoli platnou strukturu YAML
Podporuje vnořená mapování, sekvence, víceřádkové řetězce (literální a složené bloky), kotvy, aliasy, slučovací klíče a všechny skalární typy YAML 1.2.
🔒
Vaše data zůstávají soukromá
Veškeré parsování probíhá lokálně ve vašem prohlížeči pomocí JavaScriptu. Váš obsah YAML není nikdy odeslán na server, takže je bezpečný pro konfigurační soubory obsahující přihlašovací údaje nebo interní cesty.
📋
Kopírování nebo úprava výstupního formátu
Přepínejte mezi odsazením 2 a 4 mezerami. Zkopírujte výsledný JSON do schránky jedním kliknutím pro přímé použití v kódu, API požadavcích nebo konfiguračních souborech.

Případy použití převodu YAML na JSON

Vývoj frontendu
Převeďte konfigurační soubory YAML z design systémů nebo CMS do JSON pro použití v JavaScriptových bundlerech, REST API nebo i18n knihovnách, které vyžadují vstup ve formátu JSON.
Backend engineering
Transformujte Spring Boot application.yml nebo Rails database.yml do JSON pro předání do deploy skriptů, API gatewayů nebo služeb, které přijímají pouze JSON konfiguraci.
DevOps a CI/CD
Převeďte docker-compose.yml, GitHub Actions workflows nebo Kubernetes manifesty do JSON pro validační nástroje, policy enginy jako OPA nebo ladění pomocí jq.
QA a testování
Přeměňte YAML testovací fixtures na JSON payloady pro testovací nástroje API jako Postman, Insomnia nebo automatizované testovací sady, které očekávají těla JSON požadavků.
Datové inženýrství
Převeďte definice pipeline ve formátu YAML (Airflow, dbt, Dagster) do JSON pro validaci schématu, programovou manipulaci nebo integraci s katalogy metadat.
Výuka a dokumentace
Rychle zjistěte, jak se struktury YAML mapují na jejich JSON ekvivalenty při studiu konfiguračních formátů nebo psaní dokumentace.

Referenční tabulka mapování typů YAML na JSON

Každý datový typ YAML se při převodu mapuje na konkrétní JSON typ. Tabulka níže zobrazuje každý konstrukt YAML vedle jeho JSON výstupu. Pochopení těchto mapování vám pomůže předvídat, jak budou vaše YAML data vypadat po převodu, a vyhnout se překvapením u typů jako logické hodnoty nebo null.

Typ YAMLSyntaxe YAMLVýstup JSON
Mappingname: Alice{ "name": "Alice" }
Sequence- apple\n- banana["apple", "banana"]
Stringgreeting: hello world"hello world"
Integercount: 4242
Floatratio: 3.143.14
Booleanactive: truetrue
Nullvalue: nullnull
Multiline (|)bio: |\n Line one\n Line two"Line one\nLine two\n"
Folded (>)note: >\n A long\n paragraph"A long paragraph\n"
Anchor/Alias&default\n <<: *defaultResolved inline (no $ref)

Syntaxe YAML vs JSON

YAML a JSON reprezentují stejný datový model, ale s různými syntaktickými pravidly. Rozdíly níže vysvětlují, proč některé vlastnosti YAML — jako komentáře a kotvy — nemají ekvivalent v JSON.

YAML
Používá odsazení pro vnoření (bez závorek). Podporuje komentáře pomocí #. Řetězce obvykle nevyžadují uvozovky. Umožňuje víceřádkové hodnoty pomocí | (literální) a > (složené) blokové skaláry. Podporuje kotvy (&name) a aliasy (*name) pro opakované použití. Dle YAML 1.2 jsou jako logické hodnoty rozpoznány pouze true a false; starší parsery YAML 1.1 také přijímaly yes, no, on a off, ale v YAML 1.2 jsou tyto hodnoty považovány za prosté řetězce.
JSON
Používá složené a hranaté závorky pro vnoření. Nemá syntaxi komentářů. Všechny řetězce musí být uzavřeny do dvojitých uvozovek. Žádné literální víceřádkové řetězce — místo toho použijte escape sekvence \n. Žádný mechanismus kotev nebo aliasů. Logické hodnoty jsou striktně malými písmeny true a false. Všechny klíče musí být řetězce v uvozovkách. Koncové čárky jsou neplatné.

Příklady kódu

Níže jsou funkční příklady pro programový převod YAML na JSON. Každý příklad parsuje řetězec YAML a vypisuje formátovaný JSON.

JavaScript (Node.js)
import { load } from 'js-yaml'

const yamlStr = `
server:
  host: localhost
  port: 8080
  ssl: true
`

const json = JSON.stringify(load(yamlStr), null, 2)
console.log(json)
// → {
// →   "server": {
// →     "host": "localhost",
// →     "port": 8080,
// →     "ssl": true
// →   }
// → }
Python
import yaml, json

yaml_str = """
database:
  host: db.example.com
  port: 5432
  credentials:
    user: admin
    password: s3cret
"""

data = yaml.safe_load(yaml_str)
print(json.dumps(data, indent=2))
# → {
# →   "database": {
# →     "host": "db.example.com",
# →     "port": 5432,
# →     "credentials": {
# →       "user": "admin",
# →       "password": "s3cret"
# →     }
# →   }
# → }
Go
package main

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

func main() {
	yamlData := []byte(`
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
`)

	var obj map[string]interface{}
	if err := yaml.Unmarshal(yamlData, &obj); err != nil {
		log.Fatal(err)
	}
	jsonBytes, _ := json.MarshalIndent(obj, "", "  ")
	fmt.Println(string(jsonBytes))
	// → { "services": { "web": { "image": "nginx:latest", "ports": ["80:80"] } } }
}
CLI (yq + jq)
# Convert a YAML file to JSON with yq
yq -o=json config.yaml > config.json

# Pipe YAML into yq for one-off conversion
echo "name: demo" | yq -o=json
# → { "name": "demo" }

# Python one-liner (no extra install on most systems)
python3 -c "import yaml, json, sys; print(json.dumps(yaml.safe_load(sys.stdin), indent=2))" < config.yaml

Časté dotazy

Je YAML nadmnožinou JSON?
Ano, od YAML 1.2 (vydáno v roce 2009). Každý platný JSON dokument je zároveň platným YAML dokumentem. Specifikace YAML byla záměrně aktualizována, aby zajistila plnou kompatibilitu s JSON. Opak však neplatí — vlastnosti YAML jako komentáře, kotvy a klíče bez uvozovek nemají ekvivalent v JSON.
Co se stane s komentáři YAML při převodu?
Komentáře jsou zahozeny. JSON nemá syntaxi komentářů, takže všechny řádky začínající # ve vstupním YAML jsou při převodu ztraceny. Pokud potřebujete komentáře zachovat, ponechte původní YAML soubor jako zdroj pravdy a generujte z něj JSON vždy, když je potřeba.
Jak jsou zpracovány kotvy a aliasy YAML?
Kotvy (&name) a aliasy (*name) jsou vyřešeny při parsování. Alias je nahrazen plnou kopií dat z kotvy. Výsledný JSON neobsahuje žádné reference — všechny hodnoty jsou rozvinuty do textu na místě. Slučovací klíče (<<: *name) jsou řešeny stejným způsobem.
Může převod YAML na JSON způsobit ztrátu dat?
Pro datové hodnoty ne. Všechny skalární typy YAML (řetězce, čísla, logické hodnoty, null) mají přímé ekvivalenty v JSON. Co je ztraceno: komentáře, direktivy tagů, názvy kotev a rozlišení mezi blokovým a průtokovým stylem. Pokud váš YAML spoléhá na vlastní tagy (!!python/object, !!timestamp), jsou tyto tagy vyřešeny na prosté hodnoty nebo mohou způsobit chybu parsování v závislosti na parseru.
Proč se logická hodnota YAML 'yes' stane řetězcem v JSON?
Tento nástroj používá js-yaml v4, který dodržuje rozlišení logických hodnot YAML 1.2. Jako logické hodnoty jsou rozpoznány pouze true a false (v libovolné kombinaci malých a velkých písmen). Hodnoty jako yes, no, on a off jsou považovány za prosté řetězce a v JSON výstupu se zobrazí jako řetězce v uvozovkách. Pokud vidíte neočekávané řetězcové hodnoty tam, kde jste očekávali logické hodnoty, přejděte ve svém YAML zdroji na true nebo false.
Jakou maximální velikost souboru YAML tento nástroj zvládne?
Nástroj běží ve vašem prohlížeči, takže limit závisí na dostupné paměti vašeho zařízení. V praxi se soubory o velikosti několika megabajtů převedou bez problémů. Pro velmi velké soubory (50 MB+) bude spolehlivější CLI nástroj jako yq nebo Python skript s PyYAML, protože mohou zpracovávat data jako proud místo načítání všeho do paměti najednou.
Jak se víceřádkové řetězce YAML převedou do JSON?
YAML má dva styly víceřádkových blokových skalárů. Literální bloky (|) zachovávají konce řádků jako znaky \n v JSON řetězci. Složené bloky (>) nahrazují jednotlivé konce řádků mezerami a z více řádků udělají jeden odstavec. Oba styly ve výchozím nastavení přidávají na konec řádkování, které lze odebrat indikátorem oříznutí (|- nebo >-).