← Início das Ferramentas100% no lado do cliente

Gerador de Java Record, Lombok e Jackson POJO a partir de JSON

Gere Java Records idiomáticos, classes Lombok com @Data ou POJOs Java padrão com anotações Jackson @JsonProperty e inferência de tipos a partir de JSON.

649 chars
Classes Java geradas
package com.example.model;

import com.fasterxml.jackson.annotation.JsonProperty;
import java.time.Instant;
import java.time.LocalDate;
import java.util.List;
import java.util.UUID;

public record Owner(
    @JsonProperty("user_id")
    Integer userId,

    @JsonProperty("full_name")
    String fullName,

    @JsonProperty("email_address")
    String emailAddress,

    @JsonProperty("verified")
    Boolean verified
) {}

public record Metric(
    @JsonProperty("metric_key")
    String metricKey,

    @JsonProperty("metric_value")
    Double metricValue,

    @JsonProperty("alert_threshold")
    Integer alertThreshold
) {}

public record ApiResponse(
    @JsonProperty("id")
    UUID id,

    @JsonProperty("name")
    String name,

    @JsonProperty("is_active")
    Boolean isActive,

    @JsonProperty("max_concurrency")
    Integer maxConcurrency,

    @JsonProperty("service_fee")
    Double serviceFee,

    @JsonProperty("created_at")
    Instant createdAt,

    @JsonProperty("deployment_date")
    LocalDate deploymentDate,

    @JsonProperty("tags")
    List<String> tags,

    @JsonProperty("owner")
    Owner owner,

    @JsonProperty("metrics")
    List<Metric> metrics
) {}

Estilo de classe de destino

3

Total de classes geradas

17

Total de campos inferidos

1.2 KB

Referência técnica e guia de arquitetura

Gerador de Java Record, Lombok e Jackson POJO a partir de JSON — Guia de referência

Gere Java Records idiomáticos, classes Lombok com @Data ou POJOs Java padrão com anotações Jackson @JsonProperty e inferência de tipos a partir de JSON.

Parâmetros principais e controles

targetStructureenum ('RECORD' | 'LOMBOK' | 'STANDARD_POJO')

Especifica o estilo de classe de destino: Records imutáveis do Java 16+, classes anotadas com Lombok mutáveis/imutáveis (@Data, @Builder, @Value) ou JavaBeans clássicos com getters/setters explícitos.

propertyNamingStrategyenum ('CAMEL_CASE' | 'SNAKE_CASE' | 'KEBAB_CASE' | 'EXACT')

Determina como as chaves JSON são mapeadas para os campos Java e se anotações Jackson (@JsonProperty, @JsonNaming) são geradas para compatibilizar diferentes convenções de nomenclatura (case).

inferNumbersAsenum ('PRIMITIVE_OR_BOXED' | 'BIG_DECIMAL' | 'STRICT_LONG')

Controla a heurística de inferência numérica, mapeando pontos flutuantes para Double ou BigDecimal e números inteiros para Integer, Long ou BigInteger.

includeJacksonAnnotationsboolean

Quando verdadeiro, inclui anotações Jackson nos campos e classes gerados, tais como @JsonProperty, @JsonInclude(Include.NON_NULL) e @JsonIgnoreProperties(ignoreUnknown = true).

dateTimeLibraryenum ('JAVA_TIME' | 'LEGACY_UTIL_DATE' | 'STRING_ONLY')

Controla a inferência de strings de data/hora no padrão ISO-8601, mapeando timestamps automaticamente para java.time.Instant, java.time.OffsetDateTime ou java.time.LocalDate.

Dicas profissionais e melhores práticas

Problemas comuns e solução de problemas

Jackson falha ao desserializar Java Record gerado com o erro 'Cannot construct instance of (no Creators, like default constructor, exist)'.

Certifique-se de que o jackson-databind esteja na versão 2.12 ou superior. Se estiver executando no Java 16+, garanta que o módulo jackson-module-parameter-names esteja registrado no ObjectMapper ou utilize o Jackson 2.13+, que já suporta construtores canônicos de records de forma nativa.

A anotação @Builder do Lombok falha ou ignora valores padrão definidos nos campos do POJO gerado.

Adicione @Builder.Default nos campos com inicializadores ou forneça um @NoArgsConstructor explícito em conjunto com @AllArgsConstructor, permitindo que o Jackson instancie o objeto via reflexão ou padrões builder sem resetar os valores padrão dos campos.

Arrays JSON heterogêneos aninhados (tipos mistos) geram definições genéricas inválidas, como List<Object>.

Defina uma interface comum polimórfica ou classe base abstrata anotada com @JsonTypeInfo e @JsonSubTypes do Jackson, ou pré-processe a carga útil JSON para padronizar as estruturas de objetos antes da geração do POJO.

Perguntas frequentes (FAQ)

▼

▼

▼

▼

Ferramentas e utilitários relacionados

Todas as ferramentas →
Gerador de Records e Classes C# .NET a partir de JSON (System.Text.Json e Newtonsoft)developer

Converta payloads JSON em records, classes e structs C# fortemente tipados com suporte a atributos do System.Text.Json ([JsonPropertyName]) e Newtonsoft.Json.

Abrir ferramenta→
Analisador de Logs de Acesso Nginx & Apache (Métricas, Códigos de Status e GeoIP)developer

Analise logs de acesso brutos do Nginx e Apache localmente com distribuições de códigos de status, URLs mais requisitadas, IPs únicos de clientes, métricas de largura de banda e correspondência de padrões via regex customizada.

Abrir ferramenta→
Conversor de GraphQL SDL para JSON Schema e OpenAPIdeveloper

Converta definições de esquemas GraphQL SDL, tipos, queries e mutations diretamente em especificações padrão do JSON Schema Draft-07 e schemas de componentes do OpenAPI.

Abrir ferramenta→
Sintaxe Crontab e Expressões Quartz Cheat Sheetdeveloper

Manual completo da sintaxe cron POSIX de 5 campos e Quartz de 6 campos. Macros, intervalos de execução e controle de sobreposição de tarefas.

Abrir ferramenta→
Guia de Expressões Regulares (RegEx) e Validação de Sintaxedeveloper

Folha de referência para sintaxe ECMAScript RegExp, grupos de captura nomeados, asserções lookaround e sinalizadores de execução.

Abrir ferramenta→
Codificador e Decodificador de URLdeveloper

Codifique e decodifique URLs e parâmetros de consulta com segurança usando RFC 3986, encodeURIComponent, encodeURI e formUrlEncoded.

Abrir ferramenta→