Como converter configurações INI, JSON e YAML

Cole uma configuração e escolha uma das cinco direções: INI para JSON, INI para YAML, INI para TOML, JSON para INI ou YAML para INI. Converter escreve o resultado abaixo das métricas, e Copiar ou Baixar salva como converted-config.json, .yaml, .toml ou .ini.

Tudo roda na página: sem upload, sem requisições a este site, e o editor continua funcionando offline. TOML é apenas saída: a ferramenta nunca lê TOML.

  1. Cole a configuração no editor ou clique em Carregar exemplo para ver uma amostra INI com uma seção.
  2. Escolha a direção: INI para JSON, INI para YAML, INI para TOML, JSON para INI ou YAML para INI.
  3. Clique em Converter. Um editor vazio, um documento JSON ou YAML ilegível ou uma linha INI que não seja um par chave = valor nem um cabeçalho [seção] interrompem a execução; a linha de status informa linha e coluna.
  4. Leia as métricas (configurações de primeiro nível, linhas de entrada, tamanho de entrada e de saída) e depois os avisos: seções mescladas, chaves repetidas, nulos omitidos e valores que o INI não comporta.
  5. Clique em Copiar ou Baixar para levar o texto convertido, e em Limpar antes do próximo arquivo.

O que o conversor mantém e o que não é possível manter

Como o lado INI é lido

O leitor segue as convenções de arquivos .ini: linhas chave = valor ou chave: valor, cabeçalhos [seção] e comentários com ; ou #. Um comentário na linha só começa quando o sinal vem depois de um espaço, então port=8080 ; nota mantém 8080 e color=#ff0000 mantém o valor. Linhas em branco são ignoradas e toda configuração depois de um cabeçalho [seção] pertence a essa seção.

Um valor pode vir entre aspas: as aspas duplas aceitam os escapes de barra invertida, aspas duplas, quebra de linha, retorno de carro, tabulação e ponto de código, e as aspas simples são literais. Uma chave com =, :, #, ; ou colchetes precisa das mesmas aspas. Um cabeçalho pode levar comentário: [database] ; credenciais.

Repetições são mescladas em vez de rejeitadas: uma segunda [database] se junta à primeira, uma chave repetida mantém o último valor e uma seção com o nome de uma configuração anterior a substitui. Cada decisão aparece nos avisos, em vez de mudar o arquivo em silêncio.

Tipos de valor: o que continua texto

Um valor vira número apenas quando o JavaScript imprime esse número de volta caractere por caractere. 8080, -7 e 3.5 são números; 007, 0123456789, 1.50, +1, 1e3 e qualquer id acima de 2^53 continuam texto, então CEP, telefone ou versão nunca são reescritos. true e false são booleanos, null, nil e ~ são nulos, e yes, no, on e off continuam texto.

JSON e YAML mantêm os tipos que o próprio analisador produziu. No caminho para INI, uma string que voltaria como número, booleano ou nulo é escrita entre aspas ("8080", "true", "null"), e uma string com marcador de comentário, espaço no início ou no fim ou quebra de linha é escrita entre aspas com escapes, então a ida e volta devolve o mesmo valor com o mesmo tipo.

O que cada destino mantém

INI para JSON, YAML e TOML mantêm a estrutura e os tipos. TOML não tem nulo, então uma configuração com valor nulo é omitida e citada nos avisos, e um nome que o TOML leria de outra forma é escrito entre aspas: [my section] vira ["my section"].

JSON para INI e YAML para INI achatam o documento em um nível. Uma lista ou um objeto aninhado são escritos como JSON compacto (tags=["a","b"]) com aviso; uma lista ou um único valor na raiz não podem ser escritos como INI e interrompem a execução; um documento vazio avisa que a saída INI está vazia.

O INI tem apenas um nível de seções, uma linha de continuação indentada não é lida e comentários da entrada não passam para nenhuma saída.

Ferramentas recentes: