ToolDeck

YAML para JSON

Converta YAML para formato JSON

Experimente um exemplo

Entrada YAML

Saída JSON

Roda localmente · Seguro para colar segredos
O JSON aparecerá aqui…
Veja também:YAML to XML

O que é a Conversão de YAML para JSON?

A conversão de YAML para JSON transforma dados escritos em YAML (YAML Ain't Markup Language) para JSON (JavaScript Object Notation). Ambos os formatos representam dados estruturados como pares chave-valor, sequências e objetos aninhados, mas diferem na sintaxe. YAML usa indentação e pontuação mínima, enquanto o JSON usa chaves, colchetes e aspas obrigatórias. Converter entre os dois é uma tarefa comum ao mover dados de configuração entre sistemas que esperam formatos diferentes.

O YAML foi projetado para ser legível por humanos. Ele suporta comentários, strings multilinhas, âncoras e aliases — nenhum dos quais existe no JSON. Ao converter YAML para JSON, esses recursos específicos do YAML são resolvidos: âncoras são expandidas inline, comentários são descartados e blocos multilinhas se tornam strings com escape. O resultado é um JSON válido que qualquer analisador JSON consegue ler.

A especificação YAML 1.2 define explicitamente o JSON como um subconjunto do YAML, o que significa que todo documento JSON válido também é YAML válido. O inverso não é verdadeiro. Documentos YAML que usam comentários, âncoras ou chaves complexas não têm equivalente direto em JSON e precisam ser simplificados durante a conversão. Esta ferramenta realiza essa conversão automaticamente, produzindo JSON limpo e bem formatado a partir de qualquer entrada YAML válida.

YAML 1.2 Specification — yaml.org →

Por que Usar um Conversor Online de YAML para JSON?

Converter YAML para JSON manualmente é propenso a erros, especialmente com estruturas profundamente aninhadas ou valores multilinhas. Um conversor no navegador fornece o resultado instantaneamente e detecta erros de sintaxe YAML antes que cheguem à sua aplicação.

Conversão instantânea no navegador
Cole seu YAML e obtenha a saída JSON formatada em milissegundos. Sem ferramentas CLI para instalar, sem etapa de build, sem dependências para gerenciar.
🔀
Suporta qualquer estrutura YAML válida
Suporta mapeamentos aninhados, sequências, strings multilinhas (blocos literais e dobrados), âncoras, aliases, chaves de mesclagem e todos os tipos escalares do YAML 1.2.
🔒
Mantenha seus dados privados
Toda a análise é executada localmente no seu navegador usando JavaScript. O conteúdo do seu YAML nunca é enviado a um servidor, tornando-o seguro para arquivos de configuração que contêm credenciais ou caminhos internos.
📋
Copie ou ajuste o formato da saída
Alterne entre indentação de 2 ou 4 espaços. Copie o resultado JSON para a área de transferência com um clique para uso direto em código, requisições de API ou arquivos de configuração.

Casos de Uso: YAML para JSON

Desenvolvimento Frontend
Converta arquivos de configuração YAML de um design system ou CMS para JSON para consumo por bundlers JavaScript, APIs REST ou bibliotecas de i18n que exigem entrada em JSON.
Engenharia Backend
Transforme o application.yml do Spring Boot ou o database.yml do Rails em JSON para alimentar scripts de deploy, API gateways ou serviços que aceitam apenas configuração em JSON.
DevOps e CI/CD
Converta docker-compose.yml, workflows do GitHub Actions ou manifestos do Kubernetes para JSON para ferramentas de validação, policy engines como OPA ou depuração com jq.
QA e Testes
Transforme fixtures de teste em YAML em payloads JSON para ferramentas de teste de API como Postman, Insomnia ou suites de testes automatizados que esperam corpos de requisição em JSON.
Engenharia de Dados
Converta definições de pipeline em YAML (Airflow, dbt, Dagster) para JSON para validação de esquema, manipulação programática ou integração com catálogos de metadados.
Aprendizado e Documentação
Veja rapidamente como estruturas YAML se mapeiam para seus equivalentes JSON ao estudar formatos de configuração ou escrever documentação.

Referência de Mapeamento de Tipos YAML para JSON

Cada tipo de dado YAML é mapeado para um tipo JSON específico durante a conversão. A tabela abaixo mostra cada construção YAML ao lado da sua saída JSON correspondente. Entender esses mapeamentos ajuda a prever como seus dados YAML ficarão após a conversão e a evitar surpresas com tipos como booleanos ou valores nulos.

Tipo YAMLSintaxe YAMLSaída 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)

Sintaxe YAML vs JSON

YAML e JSON representam o mesmo modelo de dados, mas com regras de sintaxe diferentes. As diferenças abaixo explicam por que alguns recursos do YAML — como comentários e âncoras — não têm equivalente em JSON.

YAML
Usa indentação para aninhamento (sem chaves). Suporta comentários com #. Strings geralmente não precisam de aspas. Permite valores multilinhas com blocos escalares | (literal) e > (dobrado). Suporta âncoras (&nome) e aliases (*nome) para reutilização. No YAML 1.2, apenas true e false são reconhecidos como valores booleanos; analisadores YAML 1.1 mais antigos também aceitavam yes, no, on e off, mas estes são tratados como strings simples no YAML 1.2.
JSON
Usa chaves e colchetes para aninhamento. Sem sintaxe de comentário. Todas as strings devem ter aspas duplas. Sem literais de string multilinha — use sequências de escape \n. Sem mecanismo de âncora ou alias. Valores booleanos são estritamente true e false em minúsculas. Todas as chaves devem ser strings entre aspas. Vírgulas finais são inválidas.

Exemplos de Código

Abaixo estão exemplos funcionais para converter YAML para JSON de forma programática. Cada exemplo analisa uma string YAML e produz JSON formatado.

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

Perguntas Frequentes

O YAML é um superconjunto do JSON?
Sim, a partir do YAML 1.2 (publicado em 2009). Todo documento JSON válido também é YAML válido. A especificação YAML foi intencionalmente atualizada para garantir compatibilidade total com JSON. Porém, o inverso não é verdadeiro — recursos do YAML como comentários, âncoras e chaves sem aspas não têm equivalente em JSON.
O que acontece com os comentários YAML durante a conversão?
Os comentários são descartados. JSON não tem sintaxe de comentário, então qualquer linha que comece com # na entrada YAML é perdida durante a conversão. Se precisar preservar os comentários, mantenha o arquivo YAML original como fonte da verdade e gere o JSON a partir dele sempre que necessário.
Como âncoras e aliases YAML são tratados?
Âncoras (&nome) e aliases (*nome) são resolvidos durante a análise. O alias é substituído por uma cópia completa dos dados ancorados. O JSON resultante não contém referências — todos os valores são expandidos inline. Chaves de mesclagem (<<: *nome) são resolvidas da mesma forma.
A conversão de YAML para JSON pode perder dados?
Para valores de dados, não. Todos os tipos escalares YAML (strings, números, booleanos, null) têm equivalentes diretos em JSON. O que é perdido: comentários, diretivas de tag, nomes de âncoras e a distinção entre estilo de bloco e de fluxo. Se seu YAML usa tags personalizadas (!!python/object, !!timestamp), elas são resolvidas para valores simples ou podem causar um erro de análise dependendo do analisador.
Por que o booleano YAML 'yes' vira uma string em JSON?
Esta ferramenta usa js-yaml v4, que segue a resolução de booleanos do YAML 1.2. Apenas true e false (em qualquer capitalização) são reconhecidos como booleanos. Valores como yes, no, on e off são tratados como strings simples e aparecem como strings entre aspas na saída JSON. Se você encontrar valores de string inesperados onde esperava booleanos, substitua por true ou false no seu YAML.
Qual é o tamanho máximo de arquivo YAML que esta ferramenta suporta?
A ferramenta roda no seu navegador, então o limite depende da memória disponível no seu dispositivo. Na prática, arquivos de até alguns megabytes convertem sem problemas. Para arquivos muito grandes (50 MB+), uma ferramenta CLI como yq ou um script Python com PyYAML será mais confiável, pois pode processar dados em stream em vez de carregar tudo na memória de uma vez.
Como strings YAML multilinhas são convertidas para JSON?
YAML tem dois estilos de bloco escalar multilinha. Blocos literais (|) preservam quebras de linha como caracteres \n na string JSON. Blocos dobrados (>) substituem quebras de linha simples por espaços, transformando múltiplas linhas em um único parágrafo. Ambos os estilos adicionam uma quebra de linha no final por padrão, que pode ser removida com o indicador de corte (|- ou >-).