Skip to main content
CheckTown
Conversores

Como converter JSON para classes Java

Publicado 5 min de leitura
Neste artigo

Por que gerar classes Java a partir de JSON

A sintaxe verbosa de classes do Java torna a escrita de POJOs para deserialização JSON uma das tarefas mais tediosas no desenvolvimento backend. Uma única resposta de API com objetos aninhados pode requerer dezenas de linhas de getters, setters e construtores. Nosso conversor JSON para Java elimina esse boilerplate analisando estruturas JSON e gerando classes Java prontas para produção instantaneamente.

Seja construindo clientes REST API, processando payloads de webhook ou integrando serviços de terceiros, gerar classes Java a partir de dados JSON de exemplo garante que seus modelos correspondam à estrutura de dados real. Isso reduz bugs por nomes de campos incorretos, tipos errados e classes aninhadas ausentes que são comuns ao escrever modelos manualmente.

Modos de saída

O conversor suporta vários estilos de classes Java para corresponder aos requisitos do seu projeto e versão do Java.

  • POJO — Plain Old Java Object tradicional com campos privados, getters, setters e um construtor sem argumentos, compatível com todas as versões Java e frameworks de serialização
  • Lombok @Data — classes anotadas que usam a anotação @Data do Lombok para auto-gerar getters, setters, equals, hashCode e toString, reduzindo drasticamente o volume de código
  • Java Records — classes record Java 14+ que fornecem portadores de dados imutáveis com métodos de acesso automáticos, construtor, equals, hashCode e toString em uma única linha de declaração

Experimente gratuitamente — sem cadastro

Converter JSON para Java →

Opções de anotações

O conversor gera anotações para bibliotecas JSON Java populares para garantir mapeamento correto de campos.

  • Jackson @JsonProperty — adiciona anotações @JsonProperty com o nome da chave JSON original, garantindo deserialização correta mesmo quando os nomes dos campos Java diferem das chaves JSON
  • Nomeação personalizada — quando o JSON usa chaves snake_case ou kebab-case, o conversor gera nomes de campos Java em camelCase com mapeamento @JsonProperty para o formato de chave original
  • Classes aninhadas — gera classes internas corretamente estruturadas ou classes de nível superior separadas para objetos JSON aninhados, com as instruções de import apropriadas e referências de tipos

Perguntas frequentes

Devo usar List ou ArrayList no código gerado?

O conversor gera tipos de campo usando a interface List em vez da implementação ArrayList. Isso segue as melhores práticas Java — programar para interfaces em vez de implementações. Você pode inicializar os campos com ArrayList, LinkedList ou qualquer outra implementação de List nos seus construtores.

Como o conversor escolhe entre tipos primitivos e wrapper?

Por padrão, o conversor usa tipos wrapper (Integer, Double, Boolean) em vez de primitivos (int, double, boolean). Tipos wrapper podem representar valores null do JSON, o que é importante para campos opcionais. Usar primitivos para campos JSON nullable converteria silenciosamente null para 0 ou false, ocultando problemas de dados.

Posso gerar classes compatíveis com Gson em vez de Jackson?

A saída POJO gerada funciona tanto com Jackson quanto com Gson sem modificações. Se você precisa de anotações específicas do Gson como @SerializedName, pode facilmente substituir @JsonProperty por @SerializedName — o padrão de mapeamento de campos é idêntico. Os nomes dos campos gerados seguem as convenções Java independentemente da biblioteca de serialização.

Ferramentas relacionadas