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

Saída JSON

Como usar: YAML para JSON

  1. Cole o YAML na caixa da esquerda ou abra um arquivo .yaml/.yml.
  2. O JSON aparece à direita enquanto você digita. Escolha 2 espaços, 4 espaços ou tabs para a saída.
  3. Marque Ordenar chaves para ordenar as chaves alfabeticamente. Isso ajuda ao comparar configurações.
  4. 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 ^.
  5. 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-02 viram 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: no significa false, então o código de país da Noruega, NO, desaparece. O mesmo vale para yes, on, off, y e n. O YAML 1.2 só trata true e false como booleanos.
  • Números octais: 0755 é octal no 1.1, mas um decimal comum no 1.2, que usa 0o755. Coloque permissões de arquivo entre aspas por segurança.
  • Números sexagesimais: no 1.1, 22:30 pode 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?
Não. A análise acontece no seu navegador com a biblioteca open source js-yaml. Configurações com segredos ou nomes de hosts internos nunca saem da sua máquina.
Por que meu YAML falha com “bad indentation”?
O aninhamento no YAML é definido por espaços, e tabs não são permitidos na indentação. Garanta que chaves irmãs estejam exatamente alinhadas e que os itens de lista (-) estejam indentados de forma consistente sob a chave pai.
O que acontece com os comentários do YAML?
Eles são removidos. O JSON não tem sintaxe de comentários, então eles não podem ser levados junto. Converter de volta para YAML não os restaura.
Por que <code>no</code> continuou sendo string?
Esta ferramenta segue o YAML 1.2, em que só 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?
Sim. Cada recurso separado por --- 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.

Ferramentas relacionadas