Cola o Java à esquerda e clica em "Convert" — convertemos pra JSONCola o teu código Java

O que esta ferramenta faz

Tens um record Java ou um POJO clássico e precisas de um payload JSON que encaixe nele — para um request body, um exemplo de OpenAPI ou uma fixture de teste. Cola a classe junto com uma chamada ao construtor (ou um var order = new Order(...) em Java 10+) e recebes JSON no formato que o Jackson ou o Gson produziriam, sem ter de instanciar nada.

A ferramenta segue o comportamento real do serializador, não é só troca de texto. BigDecimal vira número JSON sem o wrapper BigDecimal(...), OffsetDateTime / LocalDateTime / Instant saem como strings ISO-8601 conforme a RFC 8259, UUID é hex padrão 8-4-4-4-12, boolean continua boolean, e as coleções (List, Set, arrays) achatam para arrays JSON. Map<String, V> vira objeto JSON com as entradas do map como chaves.

As anotações do Jackson são respeitadas: @JsonProperty("x") renomeia a chave, @JsonIgnore remove o campo e @JsonInclude(Include.NON_NULL) suprime os nulls. Classes aninhadas — o típico Address dentro de um Order — são expandidas no lugar. Cola um ficheiro inteiro com várias classes; cada instância de topo sai como a sua própria entrada. Para a referência completa de anotações, vê os docs do jackson-annotations.

Como usar

Três passos. Funciona quer coles um record de uma linha, quer um ficheiro de modelo inteiro.

1

Cola o teu Java (ou experimenta o exemplo)

Larga a classe e uma chamada ao construtor no editor da esquerda. Um POJO com getters/setters, um record, uma classe Lombok @Data ou várias classes — tudo serve. Carrega em Load Sample se quiseres um ponto de partida realista.

Não precisas de apagar declarações package, imports nem modificadores public/private. Deixa a sintaxe Java standard como está. Anotações do Jackson, anotações de validação e decorações do Lombok são todas aceites.

2

Carrega em Convert

Clica no botão verde Convert. A ferramenta lê a classe, resolve os argumentos do construtor, aplica as anotações Jackson de rename/ignore e produz JSON com indentação.

3

Copia o JSON

O painel da direita mostra JSON pronto para um request Spring Boot, uma fixture JUnit ou um exemplo Swagger. Copia para onde precisares.

Quando dá mesmo jeito

Amostras de requests Spring Boot

Cola um DTO de <code>@RequestBody</code> e uma chamada ao construtor para obter um body JSON que podes disparar no Postman, curl ou HTTPie sem arrancar a app.

Fixtures de testes JUnit

Converte um objeto que constróis num teste unitário num ficheiro JSON autónomo para testes de integração, stubs WireMock ou seed data do Testcontainers.

Exemplos OpenAPI / Swagger

Usa uma classe de modelo real para gerar o bloco <code>example</code> da tua spec OpenAPI — assim o exemplo nunca fica desalinhado do POJO.

Payloads de Kafka e messaging

Transforma um record que representa uma mensagem Kafka em JSON para testar o producer, ter sample data ou documentar.

Perguntas frequentes

Respeita as anotações do Jackson?

Sim. @JsonProperty renomeia campos, @JsonIgnore remove-os, @JsonInclude(Include.NON_NULL) suprime nulls e @JsonFormat controla o formato de datas. Vê a referência jackson-annotations para a lista completa.

Como são tratados BigDecimal, LocalDateTime e UUID?

BigDecimal vira número JSON. LocalDateTime, OffsetDateTime e Instant saem como strings ISO-8601. UUID é um hex padrão 8-4-4-4-12. LocalDate é YYYY-MM-DD. Bate certo com os defaults do JavaTimeModule do Jackson.

Funciona com records e tipos sealed?

Sim. Os record do Java 14+ serializam usando os seus componentes canónicos. Os tipos sealed e os subtipos permitidos são achatados para a forma dos dados subjacentes. Vê a JEP de records do OpenJDK para contexto.

E classes Lombok @Data / @Builder?

As anotações Lombok são reconhecidas — os getters, setters e builders gerados são tratados como acessos normais. A ferramenta olha para os campos declarados mais a chamada ao construtor que colas para montar o JSON.

Posso colar um ficheiro inteiro com várias classes?

Sim. Cada classe de topo com uma instância no que colaste sai como a sua própria entrada no JSON. Classes internas/aninhadas estáticas são expandidas inline onde são usadas.

O meu código fica guardado?

O código é enviado para o backend apenas para ser convertido e não é persistido nem registado em logs. Como com qualquer ferramenta online, revê antes de colar algo genuinamente sensível.

Outras ferramentas que podes precisar

Java para JSON é só uma peça do puzzle. Estas são as ferramentas que combinam bem: