Conversor de YAML para JSON
Cole YAML (manifests do Kubernetes, Docker Compose, configs de CI) e receba JSON limpo na hora. Os erros mostram a linha exata com um marcador.
Roda no seu navegadorSem cadastroNada é enviado
Como usar: YAML para JSON
- Cole o YAML na caixa da esquerda ou abra um arquivo
.yaml/.yml. - O JSON aparece à direita enquanto você digita. Escolha 2 espaços, 4 espaços ou tabs para a saída.
- Marque Ordenar chaves para ordenar as chaves alfabeticamente. Isso ajuda ao comparar configurações.
- Se o YAML for inválido, a barra de status mostra a linha e a coluna, e as linhas com problema aparecem abaixo dela com um marcador
^. - Copie ou baixe o JSON, ou clique em Inverter para convertê-lo de volta para YAML.
Como o YAML é mapeado para JSON
O JSON é um subconjunto do YAML 1.2, então todo mapeamento YAML vira um objeto JSON, toda sequência vira um array, e os escalares viram strings, números, booleanos ou null. Os recursos exclusivos do YAML são resolvidos durante a conversão:
- Comentários (
# …) são descartados, porque o JSON não tem comentários. - Âncoras e aliases (
&base,*base,<<: *base) são expandidos em cópias completas. - Timestamps como
2024-01-02viram strings ISO 8601. - Strings de várias linhas (blocos literais
|e dobrados>) viram strings comuns com escapes\n.
YAML com múltiplos documentos
Um único arquivo pode conter vários documentos YAML separados por ---, como é comum em manifests do Kubernetes. O JSON não tem equivalente, então o conversor retorna um array JSON com um elemento por documento e avisa na barra de status. Um --- solto no final é ignorado.
Pegadinhas do YAML 1.1 vs 1.2
Este conversor segue o YAML 1.2, a especificação atual. Muitas ferramentas mais antigas (PyYAML, o Psych do Ruby, algumas versões do Kubernetes e do Ansible) ainda leem YAML 1.1, em que as regras são diferentes:
- O problema da Noruega: no YAML 1.1,
country: nosignificafalse, então o código de país da Noruega,NO, desaparece. O mesmo vale parayes,on,off,yen. O YAML 1.2 só tratatrueefalsecomo booleanos. - Números octais:
0755é octal no 1.1, mas um decimal comum no 1.2, que usa0o755. Coloque permissões de arquivo entre aspas por segurança. - Números sexagesimais: no 1.1,
22:30pode ser interpretado como o número 1350. Coloque entre aspas horários e mapeamentos de portas como"8080:80".
A conversão JSON → YAML coloca strings ambíguas ('no', 'on', 'y') entre aspas automaticamente, então o YAML gerado é lido da mesma forma nas duas versões.
Perguntas frequentes
Meu YAML é enviado para algum lugar?
Por que meu YAML falha com “bad indentation”?
-) estejam indentados de forma consistente sob a chave pai.O que acontece com os comentários do YAML?
Por que <code>no</code> continuou sendo string?
true/false são booleanos. Parsers antigos de YAML 1.1 transformariam no, yes, on e off em booleanos (o “problema da Noruega”).Posso converter um manifest do Kubernetes com vários recursos?
--- vira um elemento do array JSON de saída, pronto para o jq ou para o kubectl apply -f -, que também aceita listas em JSON.