Conversor de JSON para YAML

Converta JSON em YAML e YAML em JSON.

Sobre esta ferramenta

Cole JSON ou YAML e receba o outro formato de volta. A direção é detectada automaticamente, e os erros de análise apontam a linha que quebrou. Útil para manifestos do Kubernetes, arquivos do Docker Compose e configurações de CI.

Como usar

  1. Cole JSON ou YAML na caixa Entrada.
  2. Deixe a direção em Detectar, ou force JSON para YAML ou YAML para JSON.
  3. Escolha 2 ou 4 espaços de indentação.
  4. Copie a saída ou clique em Usar saída como entrada para convertê-la de volta.

Perguntas

YAML é um superconjunto de JSON?
Na prática, sim: desde o YAML 1.2, quase todo documento JSON válido também é YAML válido. O contrário não é verdade, porque o YAML tem comentários, âncoras e strings de várias linhas que o JSON não consegue expressar.
O que acontece com os comentários do YAML ao converter para JSON?
Eles são descartados, porque o JSON não tem comentários. Mantenha o arquivo YAML como fonte da verdade se os comentários importarem.
Posso converter um arquivo com vários documentos YAML separados por ---?
Sim. Cada documento vira um elemento de um array JSON, e a linha de status diz quantos documentos foram encontrados.
Por que “no” vira false?
Parsers mais antigos de YAML 1.1 tratam palavras como yes, no, on e off como booleanos. Esta ferramenta usa as regras do YAML 1.2, em que só true e false são booleanos, mas coloque esses valores entre aspas se outras ferramentas forem ler o arquivo.
Datas do YAML viram datas no JSON?
O JSON não tem tipo de data, então valores como 2026-01-12 ou 2026-01-12T10:00:00Z continuam como strings simples, que é o que a maioria dos programas espera. Alguns parsers de YAML 1.1, como o PyYAML, transformam esses mesmos valores em objetos de data, então o resultado de carregar o arquivo pode variar entre ferramentas.
Por que um modo de arquivo como 0755 vira 755?
Pelas regras do YAML 1.2, um zero à esquerda não indica octal, então 0755 é o número decimal 755. Octal exige o prefixo 0o: 0o755 vira 493. Ferramentas mais antigas de YAML 1.1 leem 0755 como octal, então coloque modos de arquivo entre aspas, como em mode: "0755", sempre que a ferramenta que lê o arquivo fizer diferença.
Por que algumas strings ficam entre aspas na saída YAML?
Strings que seriam lidas de volta como outro tipo ganham aspas, para que o valor sobreviva à ida e volta. A string JSON "true" vira "true" no YAML, e não o booleano true, e o mesmo vale para "123", "null", "1.10" e textos com dois-pontos seguidos de espaço. Strings comuns ficam sem aspas.

JSON ou YAML: quando usar cada um

JSON e YAML descrevem os mesmos dados: objetos, arrays, strings, números, booleanos e null. O JSON é rígido e rápido de fazer parse, o que faz dele o padrão para APIs, o package.json e dados trocados entre programas. O YAML foi pensado para pessoas editando arquivos à mão: poucas chaves ou aspas, comentários com # e strings de várias linhas. É por isso que manifests do Kubernetes, arquivos do Docker Compose, workflows do GitHub Actions e playbooks do Ansible são escritos em YAML.

Uma regra prática: quando um programa escreve um arquivo e outro programa o lê, use JSON. Quando uma pessoa mantém o arquivo, o YAML é mais fácil de ler e revisar. Muitas ferramentas aceitam os dois, e o kubectl apply aceita qualquer um dos formatos. Um conversor de JSON para YAML é útil quando uma CLI ou uma API devolve JSON, por exemplo kubectl get deployment web -o json, e você quer uma cópia legível em YAML para guardar no Git.

Como corrigir erros de indentação e de parse no YAML

O YAML usa a indentação para mostrar a estrutura, então a maioria dos erros de parse é problema de espaço em branco. Tabs não são permitidos na indentação, de jeito nenhum, e o parser avisa “Tabs are not allowed as indentation”. Os itens de uma lista e as chaves de um mapa precisam começar na mesma coluna, e um valor aninhado precisa estar mais indentado que sua chave. O erro indica a linha e a coluna onde o parse parou, que geralmente fica no erro real ou logo depois dele.

Dois-pontos seguidos de espaço dentro de um valor sem aspas é outro erro clássico de YAML. url: http://example.com funciona, mas title: Note: read this falha, porque os segundos dois-pontos iniciam um mapeamento aninhado. Coloque esses valores entre aspas, como em title: "Note: read this". Valores que começam com @ ou com crase também precisam de aspas, assim como strings que parecem números, como version: "1.10", que de outra forma virariam o número 1.1.

O que acontece com as âncoras do YAML ao converter para JSON?

O YAML permite definir um bloco uma vez com uma âncora, como &defaults, e reutilizá-lo em outro lugar com o alias *defaults. O JSON não tem equivalente, então na conversão de YAML para JSON cada alias é substituído por uma cópia completa do valor ancorado. O JSON fica correto, porém mais longo, e a ligação entre as cópias se perde. As merge keys escritas como <<: *defaults não fazem parte do YAML 1.2 e ficam no JSON como uma chave chamada <<.

Antes de fazer commit de um arquivo convertido, confira a ida e volta. Clique em Usar saída como entrada para converter o resultado de volta e compare-o com o original no Diff de texto. Os valores devem continuar iguais, enquanto a apresentação pode mudar: os comentários somem, as âncoras são expandidas e as aspas podem mudar. O Kubernetes e a maioria dos guias de estilo de YAML indentam com 2 espaços, que é o padrão aqui, e 4 espaços estão disponíveis para equipes que preferem.

Algo não está funcionando ou um resultado parece errado? Relatar um problema com esta ferramenta