JSON to Java Class
Generate Java records or POJO classes with nested models and optional Jackson annotations
Optional fields are inferred from missing and null values across object samples. Mixed types fall back to a generic type; review the result against the real API contract.
Generated Java models will appear here.
About this tool
JSON to Java Class converts a JSON object or representative object array into nested Java models. Choose compact records or mutable POJO classes with private fields, getters, and setters. Arrays become List values, integer and decimal samples become Long and Double, booleans become Boolean, nested objects become named models, and incompatible mixed values fall back to Object. Optional Jackson @JsonProperty annotations preserve original keys after Java identifier normalization. The generator does not infer Bean Validation, Lombok, dates, BigDecimal, polymorphism, package names, or framework-specific nullability, so treat the output as a compile-ready draft rather than a final API contract.
Scenario Recipes
Draft DTOs for a Jackson API client
Goal: Preserve wire names while choosing records or mutable classes deliberately
- Paste representative objects, including records where optional properties are absent.
- Choose record or POJO style, enable Jackson annotations, and set the API response root name.
- Generate the models, add package and validation policy, then replace generic numeric and date mappings before compiling tests.
Result: A consistent DTO draft with exact JSON property names and observed optionality.
Frequently Asked Questions
Can I generate Java records instead of POJOs?
Yes. Record mode is compact; class mode emits private fields with getters and setters.
Why are Long and Boolean boxed types used?
Boxed types can represent null and fit both records and mutable DTO workflows without primitive-default ambiguity.
How are original JSON keys preserved?
Enable Jackson annotations to add @JsonProperty with the exact source key.
Does it generate nested classes?
It generates related top-level model declarations in one output, with deterministic names derived from properties.
Can it infer BigDecimal, Instant, or validation annotations?
No. Numeric and string semantics require domain knowledge and should be adjusted after generation.
Is sample data uploaded?
No. JSON parsing, sample merging, and Java source generation happen locally.
Keep browsing