代码迁移:JSON To Java类
根据 JSON 生成 Java 类:页面以 Kotlin 模式运行 json_typegen(WebAssembly),再把每个 data class 改写为带私有字段、全参构造函数、getter 和 setter 的 Java 类。
创建用 Jackson 反序列化 REST 响应的 POJO。
适用场景
- 创建用 Jackson 反序列化 REST 响应的 POJO。
- 根据示例数据为 Spring 控制器草拟 DTO 类。
使用方法
- 将 JSON 对象或数组粘贴到左侧编辑器。
- 查看生成的类:根类为 Root,嵌套对象会成为以其键名命名的独立类。
- 分别复制到各自的 .java 文件中(已包含 List 和 Jackson 的 import),必要时调整类型。
JSON
{
"id": 42,
"user_name": "ada",
"active": true,
"tags": ["admin", "editor"]
}Java 类
import java.util.List;
import com.fasterxml.jackson.annotation.JsonProperty;
public class Root {
private Long id;
@JsonProperty("user_name")
private String userName;
private Boolean active;
private List<String> tags;
public Root(Long id, String userName, Boolean active, List<String> tags) {
this.id = id;
this.userName = userName;
this.active = active;
this.tags = tags;
}
public Long getId() {
return this.id;
}
…功能与限制
生成在浏览器中通过 WebAssembly 进行;没有设置项。
snake_case 键变为带 Jackson @JsonProperty 的 camelCase 字段;用到时会导入 Jackson 和 java.util.List。
数字映射为 Long 或 Double,布尔值映射为 Boolean;布尔 getter 使用 get 而不是 is。
null 值的类型为 Object,全为 null 的数组为 List<?>。了解实际数据后,请替换为具体类型。
FAQ
能转换根节点为数组的 JSON 吗?
可以。根会变为带 List<Root2> 字段的包装类 Root,数组元素变为类 Root2。
会处理可选字段吗?
能检测到部分数组元素中缺失的键,但 Java 输出会去掉可选标记,因此每个字段都是普通的可为 null 的包装类型。
会生成 Lombok 注解或 record 吗?
不会。只生成带显式构造函数、getter 和 setter 的普通类。
null 值是什么类型?
示例中为 null 的字段会变为 Object(private Object note;),因为无法推断出具体类型。提供含实际值的示例,即可得到 String、Long 或嵌套类。