Como usar o conversor JSON ↔ YAML
- Escolha a direção: JSON → YAML ou YAML → JSON.
- Cole o documento na caixa de entrada ou digite diretamente.
- A saída convertida aparece na hora. Se a entrada for inválida, a mensagem de erro aponta a linha que não pôde ser lida.
- Copie o resultado para o seu manifesto, arquivo de pipeline ou cliente de API.
A conversão roda inteiramente no seu navegador, então arquivos de configuração com nomes de host internos ou credenciais nunca são enviados nem armazenados nos nossos servidores.
JSON e YAML: os mesmos dados, duas notações
JSON (JavaScript Object Notation) e YAML (YAML Ain't Markup Language) descrevem as mesmas estruturas básicas: mapeamentos (objetos com pares chave–valor), sequências (arrays) e escalares (strings, números, booleanos e nulo). Desde o YAML 1.2, todo documento JSON válido também é YAML válido, e por isso converter JSON em YAML não perde nada. O caminho inverso também costuma ser sem perdas, mas o YAML tem recursos que o JSON não tem, como comentários, âncoras e strings de bloco com várias linhas, e eles são achatados ou descartados quando você gera JSON.
Desenvolvedores convertem entre os dois o tempo todo:
- Os manifestos do Kubernetes normalmente são escritos em YAML, enquanto o
kubectl get -o jsone a própria API falam JSON. - Os arquivos do Docker Compose (
compose.yaml) são YAML; converter para JSON ajuda ao gerá-los por scripts. - O GitHub Actions e a maioria dos sistemas de CI definem os fluxos de trabalho em YAML.
- As especificações OpenAPI podem ser escritas em qualquer um dos formatos, e muitas ferramentas aceitam os dois.
Aqui está o mesmo objeto nas duas notações:
{"service": "web", "replicas": 3, "ports": [80, 443], "debug": false}
service: web
replicas: 3
ports:
- 80
- 443
debug: false
Armadilhas comuns do YAML
O “problema da Noruega”
O YAML 1.1 trata yes, no, on, off, y e n sem aspas (em várias combinações de maiúsculas e minúsculas) como booleanos. Uma lista de códigos de países, portanto, transforma a Noruega em false nos parsers que seguem o YAML 1.1:
countries:
- GB
- NO # YAML 1.1: false YAML 1.2 core schema: "NO"
- SE
O YAML 1.2 restringe os booleanos a true e false, mas muitas bibliotecas muito usadas ainda adotam por padrão o comportamento do 1.1. O hábito seguro é colocar entre aspas qualquer string que possa ser confundida com outro tipo: "NO", "on", "1.10", "0755". Números de versão são uma armadilha clássica: 1.10 sem aspas vira o número 1.1.
Indentação
O YAML usa a indentação para expressar o aninhamento, e tabulações não são permitidas na indentação. Um único espaço desalinhado muda a estrutura ou quebra a leitura:
spec:
containers:
- name: app
image: nginx
ports: # um espaço a menos: erro de leitura
- containerPort: 80
Âncoras e aliases
O YAML permite definir um bloco uma vez com &nome e reutilizá-lo com *nome, muitas vezes combinado com a chave de mesclagem <<. O JSON não tem equivalente, então o conversor expande cada alias em uma cópia completa:
defaults: &defaults
restart: always
logging: json
web:
<<: *defaults
image: nginx
Observe que a chave de mesclagem é uma extensão do YAML 1.1; nem todo parser a suporta.
Dicas para conversões limpas
- Os comentários (
# ...) são descartados ao converter YAML em JSON, porque o JSON não tem sintaxe de comentário. Mantenha o arquivo YAML como fonte da verdade se os comentários importarem. - Strings de bloco com várias linhas (
|mantém as quebras de linha,>as transforma em espaços) viram strings comuns com escapes\nno JSON. - Inteiros grandes além de 253 podem perder precisão em ferramentas baseadas em JavaScript. Coloque entre aspas os IDs que precisam permanecer exatos.
- Para refinar mais o resultado, passe-o pelo Formatador e validador de JSON ou pelo Formatador e validador de YAML.
---, como acontece nos pacotes do Kubernetes. O JSON não tem esse conceito, então divida os arquivos com vários documentos antes de converter, ou espere apenas um documento na saída.Perguntas frequentes
Todo arquivo JSON é um YAML válido?
No YAML 1.2, sim: ele foi projetado como um superconjunto do JSON. Você pode passar JSON direto para a maioria dos parsers de YAML. Converter para YAML em estilo de bloco apenas o deixa mais fácil de ler e editar.
Por que o tipo do meu valor YAML mudou depois da conversão?
Escalares sem aspas são resolvidos pelo parser. Valores como no, off, 1e3, 0x1F ou 2024-01-01 podem virar booleanos, números ou datas, dependendo da versão do YAML e da biblioteca. Coloque-os entre aspas para mantê-los como strings.
Posso usar tabulações no YAML?
Não. A especificação do YAML proíbe caracteres de tabulação na indentação. Use espaços, normalmente dois por nível, e configure o seu editor para inserir espaços automaticamente.
Os comentários são mantidos numa conversão de ida e volta?
Não. Os comentários desaparecem assim que o YAML é transformado em JSON e não podem ser recuperados na conversão de volta. Mantenha os comentários no arquivo YAML original.
Atualizado