Converta JSON em YAML legível, mantendo todos os valores intactos.
O que ela faz
O JSON to YAML reescreve JSON como YAML, o formato baseado em indentação comum em arquivos de configuração. A saída é YAML em blocos, simples: nomes e textos não têm aspas, a menos que o YAML os leia como outra coisa, o texto com quebras de linha é escrito como um bloco, e cada número mantém o seu texto exato.
Ou ela mantém a sua estrutura e todos os valores, ou recusa e explica por quê.
O que ela aceita
- Qualquer valor JSON pode ser o nível principal.
- Os objetos são escritos como uma linha nome: valor por membro, e as listas como uma linha - valor por item, aninhadas pela indentação de 2 ou 4 espaços (nunca tabulações).
- Nomes e textos são escritos sem aspas sempre que isso é seguro. Só recebem aspas quando o YAML poderia lê-los como outra coisa: “true”, “null”, “yes”, “1.10”, “2026-09-29”, uma string vazia, um texto com espaço em uma das pontas, ou um texto que contém “: ” ou começa com um caractere que significa algo no YAML. As aspas são simples, e uma aspa simples dentro do texto é duplicada. Letras acentuadas e emojis são escritos como são.
- O texto com quebra de linha é escrito como um bloco que começa com |, para continuar legível; um sinal de menos depois da barra (|-) significa que o texto não termina com uma quebra de linha. O texto com tabulação ou outro caractere de controle é escrito entre aspas duplas, com escapes como \t e \u0001.
- O objeto vazio é escrito {}, a lista vazia [] e a string vazia ''.
- Números, true, false e null são escritos sem aspas. Os números são copiados exatamente: 9007199254740993, 12345678901234567890, 2.370, 1e5 e 1e400 saem como foram escritos, e -0 continua -0.
- Um único documento YAML, sem comentários, âncoras, tags nem diretivas.
Bom saber
- Versão do YAML: a saída segue as regras do YAML 1.2 e não inclui a linha %YAML 1.2. Os leitores que seguem as regras mais antigas do YAML 1.1 leem um número com expoente e sem ponto decimal, como 1e5, como texto em vez de número. Se o seu programa usa YAML 1.1, confira os números escritos assim.
- Números muito precisos: um número com mais dígitos do que um valor de precisão dupla comporta, como 0.12345678901234567890123456789, continua exato no texto YAML. Os programas que leem números como valores de precisão dupla, que são a maioria, o arredondam ao carregar o arquivo. O texto em si nunca é arredondado.
- Um nome com mais de 1.024 caracteres (contados como escritos, com aspas e escapes) é recusado, porque o YAML só aceita nomes simples até esse tamanho. A ferramenta nunca encurta um nome.
- Um nome repetido dentro de um objeto, ou uma string com um escape substituto (surrogate) sem par, é recusado em vez de adivinhado.
- O resultado pode ser maior que o JSON, principalmente com aninhamento profundo e indentação de 4 espaços. Se passar do limite de tamanho, é recusado com uma prévia incompleta (veja abaixo).
Como usar
- Cole ou digite o seu JSON na caixa de entrada. Nada é executado enquanto você digita.
- Escolha a indentação (“2 espaços” ou “4 espaços”) e aperte “Converter”.
- Leia o YAML ao lado da entrada. Se a conversão for recusada, a mensagem explica o motivo.
- Aperte “Copiar” para colocar o YAML na área de transferência, ou “Baixar” para salvá-lo como converted.yaml.
Exemplos
YAML simples
Cole este JSON e aperte “Converter”. Nomes e textos saem sem aspas, a lista vira uma coluna de linhas que começam com -, o objeto vazio é escrito {}, e o texto com quebra de linha vira um bloco que começa com |-.
{ "name": "Ada", "tags": ["json", "yaml"], "note": "line one\nline two", "extra": {} }name: Ada
tags:
- json
- yaml
note: |-
line one
line two
extra: {}Nomes repetidos
O nome “port” aparece duas vezes no mesmo objeto, então a ferramenta recusa em vez de escolher um dos dois valores.
{"port": 80, "port": 8080}Um objeto repete o nome de um membro. Cada programa decide qual valor vale, então a conversão foi recusada em vez de manter um valor e descartar o outro. Deixe os nomes únicos e tente novamente.
Texto que parece outra coisa
Cole este JSON e aperte “Converter”. “1.10” e “yes” recebem aspas simples, porque sem elas o YAML leria um número e um valor sim/não. O número 8080 não tem aspas porque é mesmo um número, e “São Paulo” não tem porque é seguro como está.
{"version":"1.10","enabled":"yes","port":8080,"city":"São Paulo"}version: '1.10'
enabled: 'yes'
port: 8080
city: São PauloNúmeros exatos
Os números são copiados exatamente como foram escritos, então 1e5, 2.370 e 12345678901234567890 não são reescritos, e -0 mantém o seu sinal de menos. Lembre da nota sobre o YAML 1.1 mais abaixo para 1e5.
[1e5, 12345678901234567890, 2.370, -0]- 1e5
- 12345678901234567890
- 2.370
- -0Limites e privacidade
Limites de tamanho
- Entrada: até 2.000.000 bytes de texto em UTF-8 (cerca de 2 MB). Letras acentuadas e emojis ocupam mais de um byte cada. Uma entrada maior é recusada.
- Resultado: também até 2.000.000 bytes. Se o resultado completo fosse maior, a ferramenta mostra apenas uma prévia incompleta dos primeiros 100.000 bytes, e essa prévia não pode ser copiada nem baixada.
- Aninhamento: até 256 níveis de objetos e listas dentro uns dos outros. Um JSON mais profundo é recusado porque passa do que a ferramenta processa.
- Tempo: uma execução que demora mais que o seu limite de tempo é interrompida. Tente uma entrada menor.
Sua privacidade
O texto que você digita ou cola, ou abre de um arquivo local, é processado localmente no seu navegador, em um Web Worker dedicado. Ele nunca é enviado para o servidor (um arquivo que você abre é lido apenas no seu navegador) e não é gravado em armazenamento, cookies nem na barra de endereços.
“Copiar” coloca o resultado na área de transferência e “Baixar” o salva como arquivo, mas só quando você aperta o botão. O arquivo é criado no seu navegador, então nada é enviado.
Para ver os detalhes completos, consulte a Política de Privacidade
Ferramentas e páginas relacionadas
O seu texto continua na página quando você troca de ferramenta na mesma aba, então dá para testar o mesmo texto em outra. Recarregar ou fechar a aba o encerra.