Conversor de YAML para JSON online

O conversor de YAML para JSON lê um texto YAML e o escreve como JSON, com indentação de 2 ou 4 espaços ou minificado. Se o YAML tiver erro, a ferramenta mostra a mensagem com a linha e a coluna. A conversão é feita no seu navegador, sem enviar os dados a nenhum servidor.

Atualizado em · Por Leonardo Gaertner

Achou um resultado errado ou tem uma sugestão? Avise por e-mail.

Como usar

  1. Cole o YAML no campo da esquerda, ou clique em Abrir arquivo.
  2. Escolha a indentação do JSON: 2 espaços, 4 espaços ou minificado.
  3. Clique em Copiar resultado ou em Baixar arquivo.

Como funciona

A ferramenta lê o YAML segundo a versão 1.2 da especificação e reescreve o valor como JSON. Comentários são descartados, porque o JSON não tem comentários, e âncoras e referências (&nome e *nome) são substituídas pelo conteúdo que apontam.

As chaves de mesclagem (<<) são aplicadas, como acontece em arquivos de docker-compose e de CI. Um arquivo com vários documentos separados por --- vira uma lista JSON, com um item para cada documento, e a ferramenta avisa quando isso acontece. Datas como 2026-01-01 continuam como texto, e chaves numéricas viram texto, porque toda chave de JSON é texto.

Como o JSON é mais limitado, valores como .inf e .nan viram null, e a ferramenta avisa. Valores que o YAML 1.1 leria de outro jeito, como 010 (octal na versão 1.1), são lidos aqui pela regra do YAML 1.2, em que 010 é o número 10.

Exemplo

YAML:

# servidor

nome: PraDev

porta: 8080

tags: [dev, grátis]

JSON: {"nome":"PraDev","porta":8080,"tags":["dev","grátis"]}

Fonte: YAML 1.2: especificação oficial; RFC 8259: o formato JSON

Em código

Para converter entre YAML e JSON em código, atenção à versão do YAML: o PyYAML segue o 1.1 e lê no como false. Em Python, use sempre safe_load.

JavaScript
import { parse, stringify } from 'yaml'; // npm install yaml

// O pacote yaml segue o YAML 1.2: no, yes e on continuam sendo texto
function yamlParaJson(texto) {
  return JSON.stringify(parse(texto), null, 2);
}

// version '1.1' põe aspas em no, yes, 12:30 e parecidos, para que leitores
// antigos (como o PyYAML) também leiam texto como texto
function jsonParaYaml(texto) {
  return stringify(JSON.parse(texto), { version: '1.1' });
}

Precisa do pacote yaml (npm install yaml).

Python
import json

import yaml  # pip install pyyaml


def yaml_para_json(texto: str) -> str:
    # safe_load: o yaml.load comum pode criar objetos Python a partir do texto
    dados = yaml.safe_load(texto)
    # default=str: o PyYAML transforma 2026-01-01 em date, que o JSON não conhece
    return json.dumps(dados, indent=2, ensure_ascii=False, default=str)


def json_para_yaml(texto: str) -> str:
    return yaml.safe_dump(json.loads(texto), allow_unicode=True, sort_keys=False)

Precisa do PyYAML (pip install pyyaml).

Perguntas frequentes

Por que o YAML dá erro?

Os motivos mais comuns são indentação com tabulação, itens desalinhados, falta de espaço depois dos dois-pontos, chaves repetidas e valores com : ou # que precisam de aspas. A mensagem traz a linha e a coluna do problema.

O que acontece com os comentários do YAML?

Eles se perdem, porque o JSON não tem como guardar comentários. Se precisar manter comentários, mantenha o YAML como fonte e gere o JSON a partir dele.

Como o YAML com vários documentos é convertido?

Quando há mais de um documento, separados por ---, o resultado é uma lista JSON com um item para cada documento. Com um documento só, o resultado é o próprio valor.

O que são âncoras e referências no YAML?

Uma âncora (&nome) marca um trecho, e uma referência (*nome) reaproveita esse trecho em outro lugar. No JSON não existe esse recurso, então cada referência é substituída por uma cópia do conteúdo.