Converta JSON e YAML localmente
Converta JSON estrito em YAML ou um subconjunto YAML compatível com JSON em JSON, preservando a ordem dos membros e a escrita numérica no navegador.
Espaço de trabalho da ferramenta
YAML 1.2.2, subconjunto compatível com JSON
Cole texto ou escolha um arquivo UTF-8 local. A conversão começa somente ao pressionar Converter.
Escolha a direção e digite texto ou insira um exemplo.
Um Worker local não está disponível. A conversão não pode ser executada neste navegador.
Prévia somente leitura. Copiar e baixar usam a saída completa atual.
Diagnósticos e avisos
Alguns detalhes foram omitidos ou a inspeção não terminou. As contagens descrevem a entrada inspecionada.
Recursos aceitos
Um documento; chaves string; números escritos como JSON. Comentários e formatação são omitidos. Tags, anchors, aliases e chaves merge estão fora do subconjunto.
Valores plain yes e datas são strings; true é booleano; uma chave 1 requer aspas; a: é null.
Para um número YAML não aceito, use escrita JSON compatível ou aspas se quiser uma string. Os lexemas numéricos são preservados; outros consumidores podem arredondar inteiros grandes ou decimais precisos, ou transformar um número muito pequeno em zero.
Limites
Entrada: 1.000.000 unidades UTF-16 / 4.000.000 bytes UTF-8. Saída: 2.000.000 unidades / 8.000.000 bytes. Arquivo: 4.000.000 bytes. Profundidade: 100. Valores: 100.000.
Processamento local. O texto e os arquivos não são enviados nem salvos.
JSON → YAML: escolha como escrever strings
Escolha JSON → YAML, cole JSON estrito ou carregue um arquivo .json local e pressione Converter. Selecione 2 ou 4 espaços e strings entre aspas (padrão) ou blocos literais multilinha. A conversão nunca começa automaticamente e o original permanece no editor.
{"code":"00123","active":true,"missing":null,"items":[1,"yes",false,null,{},[]],"message":"Hello\nWorld\n"}
A saída padrão coloca todas as chaves e strings entre aspas. O modo literal usa um bloco somente quando preserva a string exatamente; caso contrário mantém aspas. Preserva contêineres vazios, arrays heterogêneos, strings e a ordem dos membros. JSONC, JSON5, chaves duplicadas, reparação e detecção automática do formato estão fora desta ferramenta.
YAML → JSON: interprete dados, não a formatação
Escolha YAML → JSON, cole texto ou carregue um arquivo .yaml ou .yml, selecione 2 ou 4 espaços e pressione Converter. Extensões não diferenciam maiúsculas; o MIME não determina a aceitação. Os arquivos devem ser UTF-8 estrito. Um BOM UTF-8 inicial é removido com aviso; dois BOMs iniciais são rejeitados. As quebras LF/CRLF/CR originais permanecem no modelo de entrada.
# Exemplo local; este comentário é omitido do JSON
code: "00123"
active: true
missing:
items: [1, "yes", false, null, {}, []]
message: |
Hello
World
missing: é null implícito. "00123" entre aspas é uma string; 00123 plain é rejeitado como número fora do perfil. yes plain e datas como 2026-10-04 são strings; true é booleano. Uma chave 1 sem aspas não é string e é rejeitada: escreva "1".
YAML 1.2.2, subconjunto compatível com JSON
Não é um editor YAML geral. Aceita um documento, mapas com chaves string, arrays, strings, números finitos com gramática JSON, booleanos, null, coleções block/flow e blocos literais/dobrados. Aceita uma diretiva %YAML 1.2 válida com marcador de início do documento. Rejeita tags explícitas, anchors, aliases, chaves merge sem aspas, duplicatas, chaves não string, vários documentos e outras diretivas. Os erros distinguem sintaxe inválida de uma construção YAML válida fora do subconjunto.
Números como 0x10, +1 ou .inf estão fora do perfil numérico. Use uma escrita JSON aceita quando apropriado ou aspas para obter uma string; o conversor não repara o texto. 1_000 permanece uma string pela classificação aceita, sem coerção numérica. Overflow não finito é rejeitado.
Escrita numérica e conversão de ida e volta
Lexemas como -0, 1.0, 1e0, 9007199254740993, 0.1234567890123456789 e 1e-400 mantêm sua escrita. Confira os avisos de precisão: outros consumidores podem arredondar um inteiro grande ou decimal preciso, ou transformar um valor com underflow em zero. Preservar o texto não garante a precisão de outro programa.
A ida e volta preserva valores interpretados, strings, ordem dos arrays, nomes/ordem literais dos membros e lexemas numéricos dentro do subconjunto. Comentários YAML são omitidos com contagem exata. Estilo, comentários, diretivas, aspas e disposição dos blocos não são reconstruídos. Blocos literais/dobrados primeiro produzem seu valor string; depois o JSON escapa esse valor.
Exportação completa, prévia e limites locais
Copiar e baixar exportam toda a saída atual mesmo quando a prévia somente leitura mostra apenas 20.000 unidades UTF-16. Depois de uma falha na cópia, uma ação explícita mostra o texto completo para cópia manual. Os downloads são converted.yaml (application/yaml) ou converted.json (application/json), UTF-8 sem BOM e com LF final.
Os limites são 1.000.000 unidades UTF-16 e 4.000.000 bytes UTF-8 de entrada; 2.000.000 unidades e 8.000.000 bytes de saída; um arquivo de até 4.000.000 bytes; 250.000 unidades fonte ou decodificadas por escalar/chave; 100 contêineres aninhados; 100.000 valores; 300.000 tokens de sintaxe; 4.000.000 unidades de trabalho próprio; 100 detalhes de diagnóstico retidos; e 10.000 ms por operação Worker. UTF-16 pode limitar antes da cota de bytes. Todas as cotas se aplicam juntas; localizações detalhadas são limitadas, mas as contagens de avisos continuam visíveis.
O processamento usa um Worker local cancelável. Texto/arquivos não são enviados, salvos no armazenamento do navegador nem adicionados a URLs. Editar, mudar opções/modo, exemplo, limpar ou selecionar arquivo invalida saída e exportação. Um limite, erro, cancelamento ou timeout não gera saída parcial nem recupera um resultado anterior. Limpar mantém a direção e restaura opções padrão. Cancelar preserva a entrada para tentar novamente. Sem JavaScript ou Worker local, a conversão não está disponível.