JSON para YAML
Conversor online gratuito de JSON para YAML, transforma seu JSON em configuração YAML 1.2 padrão com um clique. Suporta indentação personalizável, correção inteligente de erros de sintaxe JSON e gera arquivos de configuração para Kubernetes, Docker Compose, GitHub Actions e muito mais.
Sugestões Relacionadas
O que é YAML? Por que converter JSON em YAML?
YAML (YAML Ain't Markup Language, ou seja, YAML não é linguagem de marcação) é um formato de serialização de dados amigável para humanos, projetado para tornar os arquivos de configuração fáceis de ler e escrever. YAML 1.2 é a versão estável atual (yaml.org/spec/1.2.2), proposta por Clark Evans em 2001, e hoje é amplamente usado em quase todas as ferramentas de DevOps — Kubernetes, Docker Compose, GitHub Actions, Ansible, CircleCI, Prometheus e muitas outras. A filosofia do YAML prioriza a legibilidade em vez da concisão, sacrificando a sintaxe compacta e amigável à máquina do JSON em favor de uma estrutura com indentação e comentários mais amigáveis à edição humana.
JSON e YAML são superconjuntos um do outro (JSON é subconjunto de YAML), então converter de JSON para YAML é, em termos técnicos, uma simples reformatação de sintaxe — mas o impacto prático é enorme: ① legibilidade — YAML usa indentação em vez de chaves e vírgulas, e aspas antes das chaves podem ser omitidas, melhorando muito a legibilidade; ② suporte a comentários — YAML suporta comentários com #, enquanto o JSON não suporta por padrão (embora muitas ferramentas aceitem #!shebang ou parsing permissivo); ③ multi-documento — YAML suporta vários documentos em um único arquivo separados por ---, então um único arquivo Kubernetes pode conter Deployment+Service+ConfigMap; ④ inferência automática de tipos — YAML identifica números, booleanos e null sem aspas, deixando a configuração mais limpa.
YAML possui três estruturas de dados básicas: ① escalar (scalar) — strings, números, booleanos, null e outros valores únicos; ② sequência (sequence) — equivalente aos arrays do JSON, representada por itens iniciados com -; ③ mapeamento (mapping) — equivalente aos objetos do JSON, representado por pares key: value. YAML também oferece estruturas avançadas: âncoras (&anchor) e referências (*anchor) permitem reutilizar blocos de configuração; estilo bloco (| preserva quebras de linha) e estilo dobrado (> transforma quebras de linha em espaços) controlam a saída de strings multilinha; tags explícitas (!!str, !!int) permitem forçar tipos. Esses recursos tornam o YAML mais poderoso que o JSON em cenários complexos de configuração.
Motivações comuns para converter JSON em YAML incluem: ① o projeto precisa ser implantado no Kubernetes, mas a configuração atual está em JSON; ② a equipe decidiu usar YAML para gerenciar todos os arquivos de configuração; ③ integração com APIs de terceiros exige corpo de requisição em YAML (OpenAPI, Swagger); ④ configurações JSON exportadas de API gateways ou plataformas de CI/CD precisam virar YAML legível; ⑤ transformar dados mock de JSON para YAML para escrever fixtures de teste. Esta ferramenta cobre todos esses cenários.
O processo de conversão é, em essência, um remapeamento de estrutura de dados: JSON.parse() analisa o texto em um objeto JavaScript (AST), e a função dump() da biblioteca js-yaml percorre recursivamente cada nó — strings, números, booleanos e null são emitidos diretamente, arrays se tornam listas com -, e objetos aninhados viram níveis de indentação. Todo o processo é 100% local, sem dependências externas (além da própria biblioteca js-yaml), e o resultado é totalmente compatível com qualquer parser YAML padrão.
Casos de uso
- Preparar manifestos do Kubernetes: converta JSON de templates Helm ou de ferramentas de CI/CD em YAML padrão de Deployment/Service
- Configuração Docker Compose: transforme JSON exportado de docker-compose.json ou de plataformas de containerização em docker-compose.yml legível
- Workflows do GitHub Actions / GitLab CI: converta JSON gerado por scripts de automação ou templates em pipelines YAML
- Escrever Ansible Playbooks: transforme JSON de orquestração de tarefas no formato YAML esperado pelo Ansible, facilitando o code review da equipe
- Padronizar configuração de microsserviços: migre configurações JSON dispersas em vários microsserviços para um repositório YAML unificado, com controle de versão e auditoria
- Gerar YAML a partir de Swagger/OpenAPI: converta o JSON Schema exportado por ferramentas de API na especificação OpenAPI em YAML
- Aprender a sintaxe YAML: use estruturas JSON existentes para visualizar de forma intuitiva como o YAML representa objetos aninhados, arrays e valores especiais
- Comparar e converter arquivos de configuração: alterne rapidamente entre JSON e YAML para comparar formatos e escolher a linguagem de configuração mais adequada para o projeto
Como Usar
- Cole o conteúdo JSON no editor à esquerda, ou clique no botão de upload para escolher um arquivo .json / .txt. Também é possível clicar em "Exemplo" para carregar um modelo pronto
- A ferramenta converte em tempo real seguindo a especificação YAML 1.2, exibindo o resultado imediatamente à direita. Use o menu suspenso para alternar entre indentação de 2 ou 4 espaços
- Se o JSON tiver erros de sintaxe (vírgula final, aspas simples, comentários, etc.), aparecerá o botão "Corrigir JSON" na parte inferior — clique para corrigir automaticamente
- Para conversão Unicode ou escape de strings, use os botões "Chinês ↔ Unicode" e "Escapar / Reverter" na barra inferior
- Quando o resultado estiver satisfatório, clique em "Copiar" para copiar o conteúdo YAML ou em "Baixar" para salvar como output.yaml para uso no projeto
Recursos
- Saída no padrão YAML 1.2: segue rigorosamente a especificação oficial YAML 1.2, pronto para uso em Kubernetes, Docker Compose, GitHub Actions, Ansible e outras ferramentas populares
- Controle de indentação personalizável: alterna facilmente entre indentação de 2 e 4 espaços para combinar com o estilo de código do seu projeto (a recomendação oficial do YAML é 2 espaços)
- Correção inteligente de JSON: motor tryFixJSON integrado detecta e corrige automaticamente erros comuns de JSON (vírgula final, aspas simples, comentários) antes da conversão
- Conversão Unicode bidirecional: converte caracteres chineses para a forma de escape Unicode \uXXXX ou reverte o escape para o caractere original com um clique, ideal para cenários de internacionalização
- Escape / reversão de strings: adiciona barras invertidas para escapar aspas duplas, barras invertidas e quebras de linha no JSON, ou reverte o escape para o texto original
- Formatar e minificar JSON: a área de entrada à esquerda permite formatar o JSON com indentação bonita ou compactar em uma versão minimizada de linha única
- Edição bidirecional em tempo real: cole o JSON à esquerda e veja o resultado em YAML à direita instantaneamente, sem precisar clicar em botão algum
- Upload e download de arquivos: faz upload de arquivos .json / .txt e baixa o resultado como config.yaml ou output.yaml com um clique
- Atalhos de teclado: Shift+Cmd/Ctrl+F formata, C minifica, U converte para Unicode, Z desfaz, / escapa, . reverte escape, O faz upload, D faz download, K limpa
- Painéis arrastáveis e histórico: ajuste a largura dos painéis esquerdo e direito arrastando no desktop, mantém automaticamente as últimas 200 entradas no histórico para consulta
- Ir para formatação JSON: após a conversão, salte diretamente para a ferramenta de formatação de JSON para embelezar, validar ou minificar os dados de origem
- Processamento 100% local no front-end: toda a análise, conversão e operações de escape acontecem no JavaScript do navegador — nenhuma configuração sensível é enviada a servidores
Perguntas frequentes
Como converter JSON para o formato YAML?
Cole o conteúdo JSON no editor à esquerda e a ferramenta converterá automaticamente para o formato legível conforme a especificação YAML 1.2: pares chave-valor viram key: value, objetos aninhados são representados por indentação, arrays viram listas com a sintaxe `- item`. Após a conversão, copie ou baixe o resultado como arquivo .yaml com um clique. Se o JSON contiver erros de sintaxe (vírgula final, aspas simples, comentários, etc.), a ferramenta tenta corrigi-los automaticamente antes de converter.
Para quais cenários YAML e JSON são mais adequados?
YAML é ideal para configurações legíveis por humanos — manifestos do Kubernetes, Docker Compose, GitHub Actions, Ansible Playbook, pipelines de CI/CD. JSON é ideal para troca de dados legíveis por máquina — requisições e respostas de APIs REST, comunicação entre microsserviços, transferência de dados front-end/back-end. Regra simples: use YAML para escrever configurações, use JSON para transmitir dados. Esta ferramenta também suporta a conversão inversa de YAML para JSON.
A indentação do JSON convertido para YAML deve ser 2 ou 4 espaços?
A recomendação oficial do YAML é 2 espaços (consistente com o estilo Python), que é o padrão em Kubernetes, Docker Compose, GitHub Actions e outras ferramentas populares. Porém, alguns projetos (como certos playbooks antigos de Ansible ou o estilo interno do Google) usam 4 espaços. Esta ferramenta permite alternar livremente entre 2 e 4 espaços — basta clicar no menu suspenso no canto superior direito da área de saída para mudar a indentação a qualquer momento, sem precisar reconverter.
O YAML gerado pode ser usado diretamente no Kubernetes?
Sim. Esta ferramenta segue rigorosamente a especificação oficial YAML 1.2, e o YAML produzido é compatível com o parser YAML do Kubernetes (kubectl apply). O YAML gerado pode ser salvo diretamente como deployment.yaml, service.yaml, etc. e aplicado com kubectl apply -f. Atenção: YAML é extremamente sensível à indentação, então não introduza espaços extras nem use Tab ao copiar.
Suporta YAML multi-documento (separado por ---)?
A versão atual foca na conversão de JSON para YAML de documento único. Se o seu JSON for um array de vários objetos independentes, a saída será em formato de lista. Caso precise de YAML multi-documento (com --- antes de cada objeto), adicione manualmente o separador --- antes de cada objeto após a conversão, ou utilize a ferramenta de formatação de YAML deste site para processar posteriormente.
JSON com caracteres chineses/especiais vai ficar corrompido?
Não. Esta ferramenta oferece suporte completo a UTF-8, incluindo chinês, japonês, coreano, emojis e qualquer caractere Unicode. Se precisar converter caracteres chineses para a forma de escape \uXXXX (por exemplo, ao embutir em literais de string JavaScript), use o botão "Chinês → Unicode" na parte inferior da ferramenta. Para reverter, use o botão "Unicode → Chinês".
Como tratar aspas duplas e quebras de linha dentro de strings JSON?
YAML suporta várias formas de representar strings: ① sem aspas (para strings simples sem caracteres especiais); ② com aspas duplas (suporta escapes como \n e \t); ③ com aspas simples (literal, sem escape); ④ estilo bloco com | (preserva quebras de linha); ⑤ estilo dobrado com > (quebras de linha viram espaço). Esta ferramenta gera por padrão com aspas duplas. Se a string JSON contiver quebras de linha, o YAML as escapará automaticamente como \n. Os botões "Escapar / Reverter" na parte inferior tratam de cenários especiais.
Depois de converter JSON para YAML, todos os valores viraram strings?
Por padrão, a ferramenta identifica e preserva de forma inteligente o tipo original do JSON: números permanecem como números YAML (sem aspas), booleanos viram true/false, e null vira null ou ~. Mas se você precisar que todos os valores sejam strings (por exemplo, alguns sistemas de configuração exigem strings), adicione aspas manualmente após a conversão, ou envolva todos os valores como strings no JSON antes de converter.
A conversão é feita no navegador local; o arquivo de configuração é enviado a algum servidor?
Não. Toda a análise de JSON, geração de YAML, escape de strings, conversão Unicode e correção de JSON acontecem localmente no motor JavaScript do seu navegador, sem qualquer envio pela rede a servidores — funciona até mesmo offline. JSONs que contenham senhas de banco, chaves de API ou Secrets do Kubernetes podem ser convertidos com segurança.
Solução de Problemas
JSON mostra erro "Unexpected token", o que fazer?
Isso indica erro de sintaxe JSON. Causas comuns: ① vírgula extra no final (trailing comma), como {"a":1,}; ② uso de aspas simples em vez de duplas, como {'a':1}; ③ chaves sem aspas duplas, como {a:1}; ④ comentários // ou /* */. O botão "Corrigir JSON" na parte inferior da ferramenta tenta automaticamente remover vírgulas finais, adicionar aspas duplas e remover comentários. Após a correção, basta converter novamente.
kubectl apply retorna erro "yaml: invalid character"?
Geralmente é um erro de indentação. YAML exige indentação com espaços; misturar caracteres Tab faz o parser falhar. Verifique: ① se toda a indentação usa espaços (e não Tab); ② se a quantidade de espaços é consistente no mesmo nível (2 ou 4); ③ se a indentação está alinhada com a hierarquia. Esta ferramenta gera saída com indentação apenas por espaços, sem Tab, mas se você copiar e colar manualmente, pode acabar introduzindo um Tab.
Quebras de linha na string YAML aparecem como \n, o que fazer?
Por padrão, a quebra de linha (\n) em uma string JSON é escapada como \n ao ser convertida para YAML. Se quiser preservar quebras de linha reais (por exemplo, command multi-linha do Docker Compose, ou strings multi-linha em arquivos de configuração), mude manualmente para o estilo bloco do YAML após a conversão: marque com o símbolo |, por exemplo description: |\n primeira linha\n segunda linha. Outra opção é usar o botão "Reverter escape" da ferramenta para converter \n em quebras de linha reais no JSON antes de converter.
O valor null virou o símbolo ~ no YAML convertido?
YAML usa ~ ou null para representar valores vazios, e ambos são equivalentes. Se a ferramenta que você usa não reconhece ~, basta substituir manualmente por null. Ou ative a opção de saída para que todo null seja emitido explicitamente como null em vez de ~. Lembre-se também de que YAML 1.1 interpreta NO/On/Off como booleano false (problema da Noruega); YAML 1.2 já corrige isso, e a saída desta ferramenta está em conformidade com 1.2.
Os caracteres chineses aparecem como \uXXXX no YAML?
Por padrão, a ferramenta gera saída UTF-8 nativa com caracteres chineses (sem escape). Se você vir \uXXXX, pode ser porque: ① o JSON de entrada já estava em forma de escape Unicode; ② você clicou no botão "Chinês → Unicode" na parte inferior. Use o botão "Unicode → Chinês" para reverter, ou altere o \uXXXX para caracteres chineses reais no JSON de origem.
Arquivos grandes causam lentidão no navegador, o que fazer?
A ferramenta foi otimizada para conversão em tempo real (debounce de 500ms), mas arquivos muito grandes (>1MB, centenas de milhares de linhas) ainda podem causar pressão. Sugestões: ① use primeiro a ferramenta de formatação JSON para verificar se o JSON é válido; ② confirme se é um único JSON grande e não múltiplos JSONs concatenados; ③ para arquivos de configuração muito grandes (10MB+), recomenda-se usar ferramentas de linha de comando como yq ou kubectl convert; ④ se o navegador travar, feche abas extras para liberar memória e tente novamente.
Glossário
- YAML
- YAML Ain't Markup Language (acrônimo recursivo), um formato de serialização de dados legível por humanos, considerado o padrão de facto para configuração em ferramentas DevOps como Kubernetes, Docker Compose e Ansible.
- Indentação
- YAML usa indentação (obrigatoriamente com espaços, nunca Tab) para expressar relações hierárquicas. Erros de indentação fazem a configuração falhar ao ser interpretada ou mudar de significado — é a armadilha mais comum do YAML.
- Sequência (Sequence)
- Representação de array no YAML, cada elemento é indicado por `- item`, equivalente aos arrays do JSON.
- Mapeamento (Mapping)
- Representação de objeto no YAML, cada par chave-valor é indicado por `key: value`, equivalente aos objetos do JSON.
- Estilo bloco (Block Scalar |)
- Forma de escrever strings multilinha no YAML, marcada pelo símbolo |. Todas as quebras de linha e indentações são preservadas, equivalente ao heredoc.
- Estilo dobrado (Folded Scalar >)
- Forma de escrever strings multilinha no YAML, marcada pelo símbolo >. Quebras de linha simples viram espaço; apenas duas quebras de linha seguidas são preservadas como separador de parágrafo.
- Âncora e referência (Anchor & Reference)
- YAML define âncoras com &name e as referencia com *name, evitando repetição de blocos de configuração — comum no K8s quando o mesmo Secret é referenciado em vários lugares.
- YAML 1.2
- Versão estável atual da especificação YAML (lançada em 2009, com pequenas revisões em 2021). Esta ferramenta segue rigorosamente esta versão (yaml.org/spec/1.2.2).
- YAML multi-documento (Multi-document)
- YAML suporta vários documentos em um único arquivo, separados pelo delimitador ---. Um único arquivo Kubernetes pode conter múltiplos recursos como Deployment+Service+ConfigMap.
- YAML do Kubernetes
- Formato YAML dos manifestos de recursos do Kubernetes. Deve conter obrigatoriamente quatro campos: apiVersion, kind, metadata e spec. É o padrão de facto para implantações no K8s.
- Problema da Noruega (YAML 1.1)
- A especificação YAML 1.1 interpretava NO/On/Off como o booleano false, causando erros de parsing em nomes de países. YAML 1.2 corrige esse problema, e a saída desta ferramenta está em conformidade com 1.2.
- Docker Compose
- Arquivo de configuração da ferramenta de orquestração multi-container do Docker, em formato YAML, definindo seções como services, networks e volumes. É o padrão de facto para implantações containerizadas.
Mapeamento de tipos JSON para sintaxe YAML
Esta ferramenta converte os tipos JSON em tipos YAML seguindo as regras abaixo:
| Tipo JSON | Sintaxe YAML | Observação |
|---|---|---|
| string | name: "Alice" | YAML não usa aspas por padrão; aspas duplas são necessárias quando há caracteres especiais |
| integer | port: 8080 | YAML reconhece números automaticamente, sem aspas |
| float | ratio: 3.14 | Ponto flutuante segue a mesma regra dos inteiros, reconhecido automaticamente |
| boolean | enabled: true | YAML aceita apenas true/false em minúsculas. YAML 1.1 também aceita yes/no |
| null | value: null ou value: ~ | YAML usa null ou o til para representar valor vazio |
| array | - item1\n- item2 | YAML usa - no início de cada linha para listar elementos |
| object | key:\n sub: value | Objetos usam key: value, aninhamento expresso por indentação |
| array de objetos | - name: a\n- name: b | Arrays de objetos usam - seguido de pares chave-valor |
Tabela comparativa dos estilos de string YAML
YAML suporta 6 estilos de string; escolha conforme a necessidade:
| Estilo | Exemplo de sintaxe | Caso de uso |
|---|---|---|
sem aspas | name: Alice | Strings simples, o mais comum |
aspas duplas | name: "Alice" | Caracteres especiais, suporta escapes como \n |
aspas simples | name: 'Alice' | Strings literais, sem escape |
estilo bloco | bio: |\n linha1\n linha2 | Preserva todas as quebras de linha e indentação (heredoc) |
estilo dobrado | bio: >\n linha1\n linha2 | Quebra de linha única vira espaço, quebras duplas viram parágrafo |
tag explícita | value: !!str 123 | Força o tipo, sobrescrevendo a inferência padrão |
Exemplos comparativos de JSON convertido para YAML
Saída YAML correspondente a estruturas JSON complexas:
| Estrutura | Exemplo |
|---|---|
| Entrada JSON | {"name": "app", "port": 8080} |
| Saída YAML | name: app
port: 8080 |
| Entrada JSON | {"server": {"host": "0.0.0.0", "port": 443}} |
| Saída YAML | server:
host: 0.0.0.0
port: 443 |
| Entrada JSON | {"hosts": [{"ip": "10.0.0.1"}, {"ip": "10.0.0.2"}]} |
| Saída YAML | hosts:
- ip: 10.0.0.1
- ip: 10.0.0.2 |
| Entrada JSON | {"spec": {"replicas": 3, "image": "nginx:1.25"}} |
| Saída YAML | spec:
replicas: 3
image: nginx:1.25 |
Privacy & Security
Nesta ferramenta, toda a análise de JSON, geração de YAML, escape de strings, conversão Unicode, correção inteligente de JSON e leitura de arquivos acontecem localmente no motor JavaScript do navegador. O conteúdo do seu JSON e o YAML gerado jamais são enviados a servidores pela rede, nem registrados ou analisados. JSONs que contenham senhas de banco, chaves de API ou Secrets do Kubernetes podem ser convertidos com total tranquilidade. O histórico local fica salvo apenas no localStorage do seu próprio navegador, sendo apagado ao fechar o navegador ou limpar o cache.
Authoritative References
- yaml.orgEspecificação oficial YAML 1.2
- yaml.orgFAQ oficial do YAML
- WikipediaYAML - Wikipédia
- KubernetesTutorial oficial de YAML no Kubernetes
- DockerDocumentação oficial do Docker Compose
- Comprimir JSON
- CSV para JSON
- JSON para CSV
- JSON Diff
- JSON Escape / Unescape
- Achatamento de JSON
- Formatador JSON
- Gerador de JSON
- Consulta JSONPath
- Mesclar JSON
- Reparar JSON
- Validador JSON Schema
- Ordenar JSON
- JSON Stringify
- JSON para HTML
- JSON para Java
- JSON to Markdown
- JSON para SQL
- JSON para TOML
- JSON para TypeScript
- XML para JSON
- JSON para XML
- YAML para JSON
- JSON para YAML
- JSON para Python
- JSON para Go
- JSON para Rust
- JSON para Swift
- JSON para C#
- JSON para C++
- JSON para PHP