Ir para o conteúdo
Totalmente local

JSON para classe Java

Transforme um exemplo JSON em classes Java, com tipos aninhados e listas genéricas inferidas automaticamente.

Entrada
Saída

JSON para classe Java

Paste um exemplo JSON e esta ferramenta gera as classes Java necessárias para o representar, inferindo tipos de campos, tipos de objetos aninhados e tipos de elementos da lista genérica diretamente a partir dos valores fornecidos. Foi construída para programadores backend que recebem uma resposta de API ou um ficheiro de configuração e precisam de um modelo tipado para o desserializar, sem escrever manualmente cada campo.

Escolha como os campos são anotados: nenhuma, Jackson's @JsonProperty, ou Gson's @SerializedName, cada um carregando a chave JSON original para que a serialização ainda coincida após um campo ser renomeado para camelCase. Desative getters e setters para uma classe simples com campos públicos, ou substitua-os por Lombok's @Data ou por um Java record, onde os componentes ocupam o lugar dos campos e dos acessadores. Os tipos wrapper (Integer, Boolean, Double) podem ser forçados em qualquer lugar em vez de primitivos; a ferramenta sempre usa um wrapper quando um valor é genuinamente opcional, uma vez que um primitivo nunca pode conter null. Uma declaração de pacote é adicionada quando fornecida, e os objetos aninhados são renderizados como classes estáticas aninhadas num único ficheiro ou como classes de nível superior separadas.

Quando a mesma forma aparece mais de uma vez — objetos repetidos numa matriz, ou dois campos irmãos com estrutura idêntica — a ferramenta reutiliza uma única classe gerada em vez de duplicá-la. Os campos observados com formas diferentes numa matriz são mesclados numa única classe, com campos ausentes de alguns elementos marcados como opcionais. Os números mantêm-se como int onde cabem num intervalo de 32 bits e alargam-se para long ou double conforme necessário; uma chave JSON que não pode ser um identificador Java, tal como um emoji, recua para um nome gerado seguro.

Tudo é executado localmente no seu navegador — nenhum exemplo JSON é nunca carregado ou transmitido para um servidor. Copie as classes geradas para o seu projeto, transfira-as como um ficheiro .txt, ou envie a saída de volta para a entrada para executar outra ferramenta nela.

FAQ

Lida com objetos aninhados e matrizes?
Sim. Os objetos aninhados tornam-se sua própria classe (aninhada ou separada, dependendo da opção de organização da classe) e as matrizes tornam-se uma List genérica do tipo de elemento inferido.
O que acontece a um campo que está ausente de alguns objetos de amostra?
É marcado como opcional e, se for um primitivo, é atualizado para o seu tipo wrapper (Integer, Boolean, Double) para que o campo possa ser legitimamente nulo.
Posso usar Lombok ou Java records em vez de getters e setters manuais?
Sim. Ative Lombok @Data para uma classe anotada com @Data e campos privados, ou Use a Java record para gerar um record com os campos como componentes — ambos substituem acessadores escritos manualmente.
Como são escolhidos os nomes dos campos quando uma chave JSON não é um identificador Java válido?
A chave é convertida para camelCase; uma chave que produz um nome vazio ou de colisão de palavra-chave recua para um nome gerado seguro como field ou uma palavra-chave com um sublinhado à frente.
O meu JSON é carregado em qualquer lugar?
Não. A geração de classes é executada inteiramente no seu navegador — o seu exemplo JSON nunca é enviado para um servidor.