# 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.

- Endereço oficial: https://pradev.com.br/conversor-yaml-para-json
- Categoria: JSON, dados e formatadores
- Tipo: Conversor
- Atualizado em: 2026-09-30
- Autor: Leonardo Gaertner (https://pradev.com.br/sobre)
- Preço: grátis, sem cadastro. O processamento acontece no navegador de quem usa.

## 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

```text
YAML:
# servidor
nome: PraDev
porta: 8080
tags: [dev, grátis]
JSON: {"nome":"PraDev","porta":8080,"tags":["dev","grátis"]}
```

## 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' });
}
```

_JavaScript. 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)
```

_Python. 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.

## Fontes

- [YAML 1.2: especificação oficial](https://yaml.org/spec/1.2.2/)
- [RFC 8259: o formato JSON](https://www.rfc-editor.org/rfc/rfc8259)

## Guias

- [YAML: as armadilhas que trocam seus dados e como converter para JSON](https://pradev.com.br/guias/yaml-armadilhas-e-conversao-para-json): Por que no vira false e 12:30 vira 750 em alguns leitores de YAML, como evitar isso e como converter YAML e JSON em JavaScript e Python, com código testado.

## Ferramentas relacionadas

- [Conversor JSON para YAML](https://pradev.com.br/conversor-json-para-yaml): Converta JSON em YAML online, com indentação de 2 ou 4 espaços. Útil para Kubernetes, Docker Compose e CI. Grátis, no navegador.
- [Validador JSON](https://pradev.com.br/validador-json): Valide JSON online e veja a linha e a coluna do erro, o tipo e a profundidade. Grátis, e o que você cola não sai do navegador.
- [Formatador JSON](https://pradev.com.br/formatador-json): Formate, indente, minifique e valide JSON online. Mostra a linha e a coluna do erro. Grátis, e o que você cola não sai do navegador.
- [Conversor de Timestamp Unix](https://pradev.com.br/timestamp-converter): Converta timestamp Unix (segundos ou milissegundos) em data e hora, e data em timestamp. Grátis, com o seu fuso horário e em UTC.
- [Testador de Regex](https://pradev.com.br/regex-tester): Teste expressões regulares online: destaque dos casamentos, grupos e flags. Usa o motor do JavaScript. Grátis, direto no navegador.
- [Comparador JSON](https://pradev.com.br/comparador-json): Compare dois JSON online e veja o caminho de cada chave adicionada, removida ou alterada. A ordem das chaves não conta. Grátis.
