Ferramentas JSON

TOML para JSONconfira os tipos antes de compartilhar

O exemplo inclui tabelas, servidores e um identificador grande. Datas e inteiros fora da faixa segura viram strings por padrão.

TOML para JSON

JSON para TOML

Entrada TOML

Processamento neste navegador. A entrada não é enviada nem armazenada.

Resultado JSON

Opções de saída

Prévia do mapeamento de tipos

Resultado desatualizado; exportação desativada.

TOML para JSON ajuda a usar uma configuração em uma API, em dados de teste ou em um script que lê JSON. Seções comuns viram objetos; cabeçalhos [[tabela]] formam arrays ordenados de objetos.

Ao converter configuração TOML, separe a sintaxe do significado para o aplicativo. Transformar um arquivo Cargo.toml não comprova que seus campos estão corretos. Este conversor TOML não executa dependências nem valida regras do Cargo ou do Poetry.

Por que usar TOML para JSON aqui?

Manter cada tabela no lugar certo

TOML para JSON resolve o escopo das seções antes de criar as chaves. Subtabelas depois de [[servers]] pertencem ao servidor atual. A chave entre aspas "api.version" continua sendo um único nome, sem criar outro objeto.

Tabelas nomeadas viram objetos aninhados; duas seções de array formam dois objetos em ordem.

Enxergar mudanças de tipo

A prévia separa números, inteiros grandes convertidos em strings, datas convertidas em strings e valores substituídos por null. O JSON Pointer identifica cada campo para você conferir a compatibilidade com o programa que receberá os dados.

Um valor de calendário e um identificador longo passam, cada um, para um campo de texto entre aspas.

Definir as regras de quem recebe os dados

01

Escolher como representar identificadores

Inteiros fora de ±9007199254740991 viram strings decimais por padrão. Se o esquema exige números, selecione rejeitar para interromper a conversão e decidir como ajustar o campo. Valores fora da faixa de inteiro com sinal de 64 bits sempre falham.

02

Substituir números especiais só quando fizer sentido

TOML aceita inf e nan, mas JSON não tem esses números. O padrão é rejeitar. A opção null precisa ser escolhida explicitamente e também vale para overflow de ponto flutuante. O contador null mostra quantos valores foram substituídos.

03

Esperar pela versão atual do resultado

O modo automático aguarda 350 milissegundos após uma alteração. Desligue-o para usar Converter ou Ctrl/Cmd+Enter. Qualquer edição bloqueia a exportação. A prévia cresce de 50 em 50 até 500 nós, enquanto a cópia e o download continuam completos.

Como estruturas e valores são mapeados

Tabelas e arrays mistos

Tabelas comuns e chaves com pontos formam objetos aninhados. Arrays de tabelas mantêm a ordem e o vínculo correto das subtabelas ao item pai. Uma tabela vazia vira {}, um array vazio [], e listas com tipos diferentes continuam mistas.

Leitura exata dos inteiros

Todos os inteiros são lidos como BigInt antes da escolha do tipo de saída. Notações hexadecimal, octal e binária são normalizadas para decimal; separadores de dígitos somem. Os inteiros grandes escritos como strings mantêm seus dígitos exatos.

Quatro formas de data e hora

Data e hora com deslocamento mantêm o deslocamento original. Valores locais não recebem fuso, e data isolada ou hora isolada mantêm sua forma. Horários saem com precisão de milissegundos; frações mais detalhadas são truncadas.

Posição da sintaxe ou caminho do campo

Erros de sintaxe mostram linha e coluna do parser e destacam a linha de entrada. Erros de política numérica mostram um JSON Pointer. Nesse caminho, / vira ~1 e ~ vira ~0 para distinguir nomes de chave com caracteres especiais.

O que muda e o que precisa de outra validação

Exceções conhecidas do parser
O motor smol-toml 1.8.0 tem TOML 1.1 como alvo. Ele não valida completamente calendário ou Unicode: 2023-02-30 pode virar 2023-03-02, e nem toda sequência Unicode inválida é rejeitada. Verifique datas críticas separadamente.
Limites de ponto flutuante
Números IEEE 754 podem sofrer arredondamento ou underflow para 0. O valor 1.0 sai como 1, e zero negativo vira 0. Infinito, nan e overflow são rejeitados ou substituídos por null de acordo com a opção escolhida.
A escrita original não é preservada
Comentários, espaços, estilo de aspas, base e escrita dos números desaparecem. A ordem das chaves não é garantida. JSON não tem tipo de data, e strings de inteiros grandes exigem um acordo com o consumidor; a volta ao TOML não restaura tudo.
Um texto com limites definidos
Entrada de até 500.000 caracteres, profundidade 100 e 50.000 nós; saída de até 2.000.000 caracteres. Não há upload de arquivo, busca por URL, processamento em lote ou histórico salvo. Um documento só com comentários gera {}.
Sem reparo ou migração de aplicativos
Chaves duplicadas e sintaxe inválida interrompem a conversão. Não há remoção ou ordenação de campos nem validação de esquemas Cargo ou Poetry. O link inverso abre outra ferramenta sem transferir automaticamente os dados atuais.

Perguntas sobre TOML para JSON

Os comentários continuam no JSON?

Não. JSON não tem comentários em seu modelo de dados. TOML para JSON gera a saída a partir dos valores analisados, sem recuperar as posições dos comentários ou o espaçamento original. Guarde o arquivo de origem quando suas explicações forem necessárias.

Como as tabelas aparecem no resultado?

Uma seção [tabela] vira um objeto. Cabeçalhos [[tabela]] formam um array de objetos na ordem original; as subtabelas ficam no item pai atual. Tabelas vazias continuam presentes como {}, assim como arrays vazios permanecem [].

Como ficam os campos de data e hora?

Viraram strings ISO, pois JSON não tem tipo de data. Valores locais não recebem fuso e deslocamentos explícitos são mantidos. O tempo fica limitado a milissegundos; algumas datas inválidas são normalizadas pelo parser e exigem uma verificação à parte.

A conversão sempre preserva tudo?

Não. Comentários, escrita e ordem de chaves podem mudar. Inteiros grandes viram strings por padrão, datas perdem frações abaixo de milissegundos e floats podem arredondar ou chegar a zero. O esquema receptor deve aceitar essas representações.

Existe limite para o tamanho dos arquivos?

Nesta página, o conteúdo é colado como texto; não há upload de arquivos. O limite é de 500.000 caracteres de entrada, profundidade 100 e 50.000 nós, com até 2.000.000 caracteres de saída. A prévia mostra até 500 nós, mas o arquivo baixado contém o resultado completo.

Uma configuração gerou um resultado inesperado?

Conferir a próxima configuração

Use TOML para JSON para comparar as datas e o identificador grande do exemplo com os tipos de saída antes de testar sua configuração.