Conversor de YAML e JSON

Converta localmente um subconjunto de YAML 1.2 e JSON, preservando lexemas numéricos exatos e rejeitando estruturas não aceitas em vez de perder dados silenciosamente.

Esta página mostra as ferramentas disponíveis neste idioma dentro do escopo atual. Isso não significa que todas as ferramentas do site estejam traduzidas para todos os idiomas.

O processamento ocorre no seu navegador, sem envio de dados nem salvamento automático. A leitura do arquivo tem seu próprio prazo de 5 segundos; depois, um único worker cancelável tem 5 segundos para fazer a conversão. Nenhum link é aberto e o conteúdo não é executado.

Entrada de até 256 KiB em UTF-8 e saída de até 2 MiB. Profundidade de 32 níveis, 500 pares por mapa, 30 000 nós CST ou AST e 120 000 lexemas. Textos decodificados: 65 536 unidades UTF-16; lexemas numéricos: 1024 caracteres. Esses limites não abrangem toda a memória do navegador.

Somente um subconjunto de YAML 1.2 é aceito: chaves de texto únicas, sequências, mapas e valores JSON. Anchors, aliases, tags explícitas, diretivas, merge, vários documentos, chaves que não são texto, NaN e Infinity são rejeitados. Use mapas explícitos dentro das sequências, como [{a: b}].

Os lexemas de números JSON grandes, decimais e com expoente são preservados sem conversão para Number, incluindo -0 e 1e400. As formas numéricas YAML aceitas são normalizadas como texto; números hexadecimais e octais sem sinal são convertidos com BigInt. yes, on e datas sem aspas continuam sendo texto; as regras de YAML 1.1 não são ativadas.

Como usar

Escolha o sentido e a origem da entrada. Cole o texto ou selecione um arquivo UTF-8 local, converta e confira a prévia e o aviso de perda de estilo. Copie explicitamente o resultado completo ou baixe converted.json ou converted.yaml. Um texto grande demais ou um arquivo que não pôde ser lido continua rejeitado até que essa mesma entrada seja corrigida; mudar outra opção não processa um valor anterior. Você pode cancelar a leitura ou a conversão; o arquivo original não muda.

Exemplo prático

O YAML n: 9007199254740993 produz JSON com esse número exato. O JSON {"n":1e400,"name":"Português"} produz YAML preservando 1e400, sem convertê-lo em Infinity. .5 vira 0.5 e 0o10 vira 8, enquanto yes e a data 2026-09-25 continuam sendo texto.

Compatibilidade e limites

Os valores, a ordem dos mapas e das sequências e os lexemas da gramática numérica JSON são preservados sem conversão para Number. As formas numéricas YAML aceitas são normalizadas como texto, e números hexadecimais e octais sem sinal são convertidos com BigInt. As regras YAML 1.1 não são usadas; comentários, estilo, aspas e quebras de linha originais não são preservados. A saída é UTF-8 sem BOM e com um LF final. Aliases, anchors, tags explícitas incluindo !!str, diretivas, vários documentos, merge, chaves que não são texto ou são duplicadas, NaN/Infinity e pares abreviados como [a: b] são rejeitados; use mapas explícitos. Os arquivos exigem UTF-8 válido; a BOM de entrada é mantida e aceita no início pelo YAML, mas rejeitada pelo JSON. A prévia contém apenas texto e pode terminar dentro de um caractere composto; a área de transferência pode mudar quebras de linha conforme o sistema. Nenhum dado é enviado ou salvo, nenhum conteúdo é executado e nenhum link é seguido.

Perguntas frequentes

O conversor aceita todo YAML ou corrige documentos automaticamente?

Não. Ele converte o subconjunto YAML 1.2 declarado que pode ser representado por valores JSON e rejeita entradas não aceitas ou acima dos limites. A conversão não é sanitização de segurança nem validação de esquema de dados e não garante que outro aplicativo leia números grandes sem arredondá-los. O processamento limitado não garante um teto para toda a memória do navegador.

Ferramentas relacionadas