Conversor de JSON para Properties
Converta um objeto JSON para o formato .properties do Java, com achatamento de objetos aninhados e reinserção de comentários. Roda só no navegador.
Gere um arquivo .properties do Java a partir de um objeto JSON, pronto para ser carregado por java.util.Properties ou pelo Spring Boot. As chaves aninhadas são achatadas em nomes como server.port=8080; separadores e quebras de linha recebem escape com barra invertida para que os valores sobrevivam à ida e volta; e o que estiver em $comments retorna ao arquivo como comentário #. O processamento acontece no próprio navegador, sem upload.
Sobre o Conversor de JSON para Properties
O .properties é um formato orientado a linhas, por isso o serializador aplica escape a tudo o que mudaria a forma como o Java divide cada linha: um espaço dentro da chave vira \ , um = ou : dentro do valor vira \= ou \:, e uma quebra de linha vira \n. Chave e valor são ligados por =, e os objetos JSON aninhados são achatados em chaves com ponto, respeitando a ordem original. Texto fora do ASCII, como café, é gravado em UTF-8 e não como escapes \uXXXX. O Java 9 e versões posteriores leem resource bundles em UTF-8, mas Properties.load(InputStream) decodifica em ISO-8859-1 — no seu próprio código, carregue o arquivo por um Reader UTF-8.
Talvez você também precise
Como converter JSON para .properties
- 1
Comece pelo objeto JSON
Digite o objeto no painel de entrada ou use o ícone do frasco para carregar o exemplo { "server": { "port": 8080 } }; as chaves do primeiro nível viram nomes de propriedade.
- 2
Confira o separador de chaves
O ponto é o padrão Java (pense em spring.datasource.url) e pode ficar como está; se o projeto segue outra convenção, defina outro separador em Opções avançadas. Também é possível desligar o achatamento — aí cada objeto aninhado é gravado como texto JSON.
- 3
Converta com escape automático
Cada folha vira uma linha chave=valor; espaços nas chaves, separadores nos valores e quebras de linha recebem barra invertida, de modo que java.util.Properties leia de volta exatamente os mesmos valores.
- 4
Salve em src/main/resources
Copie a saída ou baixe um arquivo .properties para colocar em src/main/resources. Para refazer o caminho até o JSON, use o ícone de inverter direção.
Referências
- Java SE — java.util.Properties
A documentação oficial da API Java que define o formato de arquivo .properties para o qual a saída deste conversor é direcionada.
- RFC 8259 — The JSON Data Interchange Format
A especificação do IETF para o formato de JSON de entrada que esta ferramenta interpreta.
Ferramentas para desenvolvedores relacionadas
Properties to JSON
Converta um arquivo .properties do Java para JSON, mantendo os comentários de cada chave em um mapa $comments.
JSON to Env
Converta um objeto JSON para o formato .env, o fluxo equivalente para arquivos de configuração de variáveis de ambiente.
JSON Formatter
Cole um JSON bruto e veja na hora uma visualização formatada, com destaque de sintaxe e validada antes de convertê-lo.
YAML to JSON
Converta entre os formatos de configuração YAML e JSON.
Perguntas frequentes sobre JSON to Properties
- Quais caracteres recebem escape com barra invertida?
- Espaço dentro de chave, = e : dentro de valor, e quebras de linha. Exemplo: a\ b=x\=y e nota=linha1\nlinha2. São justamente as sequências que java.util.Properties decodifica ao carregar o arquivo.
- Acentos e outros caracteres fora do ASCII viram \uXXXX?
- Não, eles saem como UTF-8 puro. O Java 9+ carrega resource bundles .properties em UTF-8, porém java.util.Properties#load(InputStream) pressupõe ISO-8859-1; se o seu código usa essa API, leia o arquivo com load(Reader) e um leitor UTF-8.
- Dá para montar o application.properties do Spring Boot a partir de JSON?
- Dá. O Spring Boot trabalha com nomes de propriedade separados por ponto, e com o separador padrão { "server": { "port": 8080 } } se torna server.port=8080.
- Um array vira hosts[0], hosts[1]...?
- Não. O array inteiro vai para um único valor com o seu texto JSON, como hosts=["a","b"]; a forma indexada do Spring Boot (hosts[0]=a) não é gerada.
- Números e booleanos mantêm o tipo?
- No arquivo, não: em .properties todo valor é string, então true, false e números aparecem como texto. Quando passam pelo Properties to JSON com Inferir tipos ativo, voltam a ser tipos JSON reais.
- Os comentários do Properties to JSON voltam para o arquivo?
- Voltam. Cada item do objeto $comments — o mesmo que o Properties to JSON produz — é escrito como comentário # imediatamente antes da chave a que se refere. Para obter só pares chave=valor, mude a opção Comentários para Ignorar.
- O JSON trafega pela internet?
- Não. Leitura e formatação ficam no seu navegador; nenhuma requisição de rede carrega os seus dados.