Ferramenta Tool Kumar
JSON para Java
Converta um exemplo de API em records Java para Jackson. A raiz é um record público, e os records aninhados ficam dentro dele para que você possa salvar a saída em Root.java.
Como usar esta ferramenta
- Cole uma resposta representativa, incluindo registros cujos campos sejam diferentes.
- Revise a saída gerada e altere o nome raiz se necessário.
- Copie ou baixe o código e confira se os tipos correspondem ao contrato da sua API.
Exemplo prático
Esta saída vem do conversor integrado. Os dois preços de item permitem inferir um campo de ponto flutuante. Os valores null e string de note permitem inferir um campo que aceita null.
Entrada
{
"user-id": 42,
"profile": {
"city": "London",
"created_at": "2026-10-14T09:00:00Z"
},
"items": [
{
"price": 12,
"note": null
},
{
"price": 12.5,
"note": "gift"
}
]
}Saída
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
public record Root(
@JsonProperty("user-id") long userId,
Profile profile,
List<Item> items
) {
public record Profile(String city, @JsonProperty("created_at") String createdAt) {}
public record Item(double price, String note) {}
}
Use o record com Jackson
Salve a saída padrão como Root.java. O Jackson constrói os componentes do record a partir das propriedades JSON. Um record aninhado como Item fica disponível como Root.Item.
A saída não contém declaração de pacote. Adicione o pacote usado pela sua aplicação. Registre os módulos Jackson habituais se você mudar as datas para tipos java.time.
import com.fasterxml.jackson.databind.ObjectMapper;
Root model = new ObjectMapper().readValue(responseBody, Root.class);Opções e casos especiais
- Esta opção gera records, em vez de POJOs mutáveis com setters. Use Java 16 ou mais recente e uma versão do Jackson compatível com records, como 2.12 ou mais recente.
- Componentes de record renomeados ou com nomes reservados recebem @JsonProperty com a chave original. Arrays de objetos aninhados viram List<Item>.
- Inteiros usam long, inteiros fora do intervalo de 64 bits com sinal usam BigInteger e valores fracionários usam double. Primitivos que aceitam null usam tipos wrapper, como Long.
- Campos observados apenas como null ou com tipos mistos usam Object. Datas continuam sendo String. Use BigDecimal e um mapeamento revisado quando a aritmética decimal exata for importante.
Privado por padrão
Seu documento fica neste navegador. O Tool Kumar analisa, converte e cria downloads no seu dispositivo, sem conta e sem envio ao servidor.
JSON para Java: perguntas frequentes
- O conversor de JSON para Java gera POJOs?
- Ele gera records Java imutáveis. Se você precisar de POJOs Java 8, setters ou um construtor sem argumentos, adapte a saída ou use um gerador para esse estilo de modelo.
- Qual biblioteca JSON ele usa?
- Jackson. O conversor importa @JsonProperty quando precisa preservar uma chave que difere do nome de um componente Java.
- Posso salvar todos os tipos aninhados em um arquivo?
- Sim. O record raiz público contém records públicos aninhados, então a saída padrão para objetos cabe em Root.java.
- Como desserializo o record?
- Use ObjectMapper.readValue(responseBody, Root.class) com uma versão do Jackson compatível com records. Revise o tratamento de datas e os limites numéricos da sua API.
Ferramentas relacionadas
JSON para Kotlin data class, JSON para classes C# e Gerador de JSON Schema.