JSON to Java POJO
Generate Java POJO classes with Jackson getters/setters or Lombok @Data from any JSON object.
What is a Java POJO?
A POJO (Plain Old Java Object) is a simple Java class that represents data — typically a JSON object or API response body. It has private fields, public getters and setters, and no business logic. POJOs are used by serialization libraries like Jackson to convert between JSON strings and Java objects (deserialization and serialization).
Writing POJOs by hand for complex JSON responses is tedious and error-prone. This tool reads any JSON object and generates the complete Java class hierarchy in seconds. Choose Jackson mode (explicit getters/setters with @JsonProperty) for maximum compatibility, or Lombok mode (@Data) to eliminate boilerplate in modern Spring Boot applications.
Jackson vs Lombok
| Feature | Jackson Mode | Lombok Mode |
|---|---|---|
| Class annotation | @JsonIgnoreProperties | @Data + @JsonIgnoreProperties |
| Boilerplate | Generates getters/setters | Lombok generates at compile time |
| Dependency | jackson-databind | jackson-databind + lombok |
| Mutability | Mutable (setters) | Mutable (setters via @Data) |
| Best for | Standard Java projects | Modern Spring Boot apps |
Lombok Maven Dependency
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>Example: Jackson Mode Output
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List;
@JsonIgnoreProperties(ignoreUnknown = true)
public class Root {
private Long id;
@JsonProperty("first_name")
private String firstName;
private Boolean active;
public Long getId() { return id; }
public void setId(Long id) { this.id = id; }
public String getFirstName() { return firstName; }
public void setFirstName(String firstName) { this.firstName = firstName; }
public Boolean getActive() { return active; }
public void setActive(Boolean active) { this.active = active; }
}Type Mapping
| JSON Type | Java Type | Notes |
|---|---|---|
| string | String | Standard java.lang.String |
| integer | Long | Avoids int overflow for large IDs |
| float | Double | Double precision |
| boolean | Boolean | Boxed for null safety |
| null | Object | Most permissive nullable type |
| array | List<T> | java.util.List |
| object | Class | New named POJO class |