JSON para Java – Gere classes ou records a partir do JSON
Converta um JSON em classes Java ou records, com tipos inferidos e classes aninhadas prontas para colar no projeto.
Código gerado
import java.util.List;
public class Endereco {
private String cidade;
private String uf;
public String getCidade() { return cidade; }
public void setCidade(String cidade) { this.cidade = cidade; }
public String getUf() { return uf; }
public void setUf(String uf) { this.uf = uf; }
}
public class Root {
private long id;
private String nome;
private boolean ativo;
private double saldo;
private List<String> tags;
private Endereco endereco;
private Object ultimoAcesso;
public long getId() { return id; }
public void setId(long id) { this.id = id; }
public String getNome() { return nome; }
public void setNome(String nome) { this.nome = nome; }
public boolean getAtivo() { return ativo; }
public void setAtivo(boolean ativo) { this.ativo = ativo; }
public double getSaldo() { return saldo; }
public void setSaldo(double saldo) { this.saldo = saldo; }
public List<String> getTags() { return tags; }
public void setTags(List<String> tags) { this.tags = tags; }
public Endereco getEndereco() { return endereco; }
public void setEndereco(Endereco endereco) { this.endereco = endereco; }
public Object getUltimoAcesso() { return ultimoAcesso; }
public void setUltimoAcesso(Object ultimoAcesso) { this.ultimoAcesso = ultimoAcesso; }
}
Os tipos são inferidos do exemplo: campos ausentes em parte dos itens de um array viram opcionais, e valores null viram anuláveis. Tudo roda no navegador — o JSON não é enviado a nenhum servidor.
Como usar esta ferramenta
- Cole o JSON de exemplo
- Escolha entre classe tradicional e record
- Copie o código gerado
- Ajuste pacote e anotações no projeto
Sobre esta ferramenta
O que é
Record é a forma concisa do Java moderno de declarar um portador de dados imutável, com construtor, acessores e equals gerados pelo compilador. Para objetos mutáveis, a classe tradicional ainda é a opção.
Quando usar
- Modelar a resposta de uma API REST consumida pelo serviço
- Criar DTOs de uma integração com sistema externo
- Converter payload de mensageria em objeto tipado
- Gerar a base de um mapeamento com Jackson ou Gson
- Poupar tempo em payloads com muitos campos
Perguntas frequentes
- Record ou classe: qual usar?
- Record para dados imutáveis que só trafegam, que é o caso típico de DTO. Classe tradicional quando você precisa de setters, herança ou anotações que records não aceitam.
- As anotações do Jackson são geradas?
- Os campos saem com nomes em camelCase. Quando o JSON usa snake_case, adicione @JsonProperty no campo ou configure a estratégia de nomes no ObjectMapper.
- Como ficam arrays no JSON?
- Viram List do tipo do elemento. Arrays vazios não permitem inferir o tipo, então o campo sai como List<Object> e precisa de ajuste manual.