Conversor de JSON para YAML
Converte JSON em YAML e YAML em JSON no teu navegador, com suporte de âncoras, merge keys e ficheiros com vários documentos. Nada é enviado.
Como usar o conversor de JSON para YAML
- Escolhe a direção: JSON → YAML ou YAML → JSON.
- Cola os teus dados ou clica em Abrir um ficheiro para carregar um ficheiro
.json,.yamlou.yml(até 10 MB). - Escolhe a Indentação (2 ou 4 espaços) e, se quiseres, Ordenar as chaves alfabeticamente.
- Clica em Converter, ou continua simplesmente a escrever: o resultado atualiza-se sozinho. Se a entrada for inválida, a mensagem de erro indica a linha e a coluna do problema.
- Copia ou transfere o resultado. Inverter a direção passa o resultado para a entrada, para o converteres no sentido contrário.
JSON e YAML: os mesmos dados, sintaxe diferente
Na prática, o YAML é um superconjunto do JSON: todos os documentos JSON descrevem dados que o YAML consegue exprimir, e o YAML acrescenta uma sintaxe mais leve, mais fácil de ler e editar por pessoas. É por isso que os manifestos Kubernetes, os ficheiros Docker Compose, os pipelines do GitHub Actions e do GitLab CI, os playbooks Ansible e as especificações OpenAPI são normalmente escritos em YAML, enquanto as APIs e os programas trocam JSON.
Os mesmos dados nos dois formatos:
{"name": "web", "ports": [80, 443], "env": {"DEBUG": false}}
name: web
ports:
- 80
- 443
env:
DEBUG: false
JSON → YAML
O conversor escreve YAML em estilo de bloco: uma chave por linha, listas com hífenes e objetos aninhados indentados. As strings longas nunca são dobradas, e as strings com várias linhas usam o estilo literal |, para que as quebras de linha fiquem exatamente iguais. As strings que o YAML leria de outra forma como outro tipo são postas entre aspas: "yes", "1.0" ou "null" continuam a ser strings depois de uma ida e volta. Ordenar as chaves ordena alfabeticamente as chaves de todos os objetos, o que facilita a comparação de dois ficheiros de configuração.
YAML → JSON
O YAML é lido com o core schema do YAML 1.2, as mesmas regras usadas pela maioria das ferramentas modernas:
true/false, os números enull(ou~) passam a valores JSON;yes,no,oneoffcontinuam a ser strings, como exige a especificação YAML 1.2.- As âncoras e aliases (
&base,*base) são expandidos, e as merge keys (<<: *base), comuns nos ficheiros de CI, são suportadas. - Um ficheiro com vários documentos separados por
---passa a uma lista JSON com um elemento por documento, e uma mensagem diz-te quantos foram combinados. - Os comentários são descartados, já que o JSON não tem comentários.
.infe.nannão têm equivalente em JSON; são escritos como as strings"Infinity"e"NaN".
Para proteger o teu navegador de ficheiros «billion laughs», em que alguns aliases se expandem em milhares de milhões de valores, um documento que se expanda para mais de um milhão de valores é recusado.
Erros comuns em YAML
- Tabulações na indentação: o YAML só permite espaços.
- Indentação incoerente: os elementos da mesma lista ou do mesmo objeto têm de começar na mesma coluna.
- Falta de espaço depois dos dois pontos:
chave:valoré uma única string, enquantochave: valoré um par chave-valor. - Caracteres especiais sem aspas: um valor que comece por
@, um acento grave,*,&ou!, ou que contenha:ou#, tem de ir entre aspas.
Perguntas frequentes
O meu ficheiro é enviado para um servidor?
Não. A conversão corre no teu navegador, e os teus ficheiros de configuração, segredos ou dados de APIs nunca saem do teu computador.
Porque é que «yes» e «no» não são convertidos em booleanos?
Desde o YAML 1.2, só true e false são booleanos. Os parsers antigos de YAML 1.1 tratavam yes, no, on e off como booleanos, o que deu origem ao famoso «problema da Noruega» (o código de país NO lido como falso). Esta ferramenta segue o YAML 1.2.
Os comentários do YAML são preservados?
Não. O JSON não tem comentários, por isso perdem-se em YAML → JSON. Ao converter JSON → YAML, podes acrescentar comentários ao resultado depois.
Posso converter um ficheiro Kubernetes com vários recursos?
Sim. Cada recurso separado por --- passa a um elemento de uma lista JSON. Converter essa lista de volta para YAML dá um único documento que contém uma lista.
O conversor altera a ordem das chaves?
Não, a menos que marques Ordenar as chaves: as chaves mantêm a ordem em que aparecem na tua entrada. A única exceção vem do próprio JavaScript: as chaves que são números inteiros, como "10" ou "2", ficam em primeiro lugar, por ordem crescente.
Ferramentas relacionadas
- Formatador e validador de JSON Formatador e validador de JSON gratuito que formata, minifica e verifica JSON no teu navegador, com os erros de sintaxe indicados por linha e coluna.
- Conversor de JSON para CSV Converte JSON em CSV e CSV em JSON no teu navegador. As chaves aninhadas passam a colunas, o separador é detetado e nada é enviado para um servidor.
- Conversor de JSON para XML Converte JSON em XML e XML em JSON no teu navegador, com atributos, elementos repetidos e CDATA tratados. Nada é enviado para um servidor.