1001Ferramentas
Conversores

JSON para Classe Java

Converta JSON em uma classe Java (POJO) com getters/setters e tipos inferidos automaticamente. Suporta classes aninhadas e arrays como List. Tudo no navegador.

Gerar o POJO a partir da resposta do endpoint

O endpoint devolveu um objeto com vinte campos e você precisa da classe correspondente para desserializar com Jackson ou Gson. Digitar campo, getter e setter de cada um é o tipo de trabalho em que o erro não aparece na compilação: aparece em produção, como um campo nulo que ninguém explica. Cole o JSON e receba a classe com os tipos já inferidos e os objetos aninhados em classes separadas.

A inferência olha o valor, não o nome. Texto vira String, verdadeiro ou falso vira boolean, número sem casa decimal vira long, número com casa decimal vira double e nulo vira Object. Array vira List parametrizada pelo tipo do primeiro elemento, com as versões empacotadas Long e Double, porque generics em Java não aceitam primitivo. Objeto aninhado ganha classe própria com o nome da chave em PascalCase, e array de objetos ganha o sufixo Item.

O detalhe que mais morde: os nomes dos campos saem idênticos aos do JSON. Uma chave first_name vira campo com underline e método getFirst_name, e uma chave com hífen ou espaço produz identificador inválido, que nem compila. Renomeie antes de colar ou depois de gerar. Todas as classes saem marcadas como public, então divida em arquivos ou tire o modificador das internas. Não há anotação do Jackson, Lombok, equals nem toString. Roda no navegador.

Perguntas frequentes

Por que long e não int?
Porque o JSON não diz se o valor cabe em int, e estourar o limite em silêncio é pior do que gastar oito bytes. Troque para int nos campos cujo domínio você conhece.
Ele adiciona anotações do Jackson?
Não. Sai uma classe simples, com campos privados, getters e setters. Se o JSON usa snake_case, adicione @JsonProperty ou configure a naming strategy do seu mapper.
Posso colar um array na raiz do JSON?
Não, a raiz precisa ser um objeto. Cole um elemento representativo do array, ou envolva tudo em um objeto com uma chave, e depois use List na sua própria assinatura.

Ferramentas Relacionadas