# Conversor de JSON para YAML online

> O conversor de JSON para YAML reescreve um JSON no formato YAML, mais enxuto e fácil de ler, usado em arquivos de configuração como os do Kubernetes, do Docker Compose e do GitHub Actions. Você escolhe a indentação e copia ou baixa o resultado. A conversão é feita no seu navegador, sem enviar os dados a nenhum servidor.

- Endereço oficial: https://pradev.com.br/conversor-json-para-yaml
- 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 JSON no campo da esquerda, ou clique em Abrir arquivo.
2. Escolha a indentação, de 2 ou 4 espaços.
3. Clique em Copiar resultado ou em Baixar arquivo.

## Como funciona

O YAML 1.2 é quase um superconjunto do JSON, então todo JSON pode ser escrito em YAML sem perder informação. Objetos viram pares chave: valor, listas viram itens com hífen e as chaves e os textos dispensam as aspas quando isso não gera ambiguidade.

Textos que poderiam ser lidos como outro tipo ganham aspas. Por exemplo, "123", "true", "null", "yes", "no" e "on" ficam entre aspas, para que o YAML continue lendo texto e não um número ou um booleano, inclusive em bibliotecas mais antigas que seguem o YAML 1.1.

Os textos longos não são quebrados em várias linhas, e textos com quebras de linha usam o bloco literal do YAML (o símbolo | seguido das linhas indentadas), o que preserva o conteúdo exato. O JSON não tem comentários, então o YAML gerado também não terá.

### Exemplo

```text
JSON: {"nome":"PraDev","porta":8080,"tags":["dev","grátis"]}
YAML:
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

### Todo JSON pode virar YAML sem perder dados?

Sim. O YAML 1.2 foi feito para aceitar JSON válido. A conversão guarda todos os valores, inclusive textos que parecem números ou booleanos, colocando aspas neles.

### Por que "yes" e "no" aparecem entre aspas?

Porque em YAML 1.1, usado por bibliotecas como PyYAML e Ruby, yes e no sem aspas são lidos como verdadeiro e falso. As aspas garantem que o valor continue sendo texto em qualquer leitor.

### O YAML aceita tabulação para indentar?

Não. A indentação do YAML é sempre com espaços. Usar tabulação é um dos erros mais comuns ao editar YAML à mão.

### Posso voltar do YAML para o JSON?

Sim, com o conversor de YAML para JSON do PraDev. Só lembre que comentários do YAML não existem em JSON e se perdem nessa volta.

## 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 YAML para JSON](https://pradev.com.br/conversor-yaml-para-json): Converta YAML em JSON online e veja a linha e a coluna do erro. Resolve âncoras e aceita vários documentos. Grátis, no 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.
- [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.
- [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.
