JSON 转 Java 实体类工具(支持嵌套与注释解析)
在写 Java 后端的时候,一个挺常见的场景是:
接口返回一段 JSON,需要手动去写对应的 Java 实体类(POJO)。
字段少还好,一旦结构复杂、嵌套多,基本就是在重复做体力活,而且还容易漏字段或者类型写错。
这边整理了一个 JSON 转 Java 的小工具,主要就是把这一步自动化,同时补了一些平时比较实用的能力,比如嵌套解析、注释保留等。
功能点
1. 嵌套 JSON 自动解析
支持递归解析 JSON 结构。
如果 JSON 中存在对象嵌套或数组嵌套,会自动拆分成多个类,并建立引用关系,不需要手动拆结构。
2. 数组自动转换为 List
例如:
json
{
"list": [
{
"name": "test"
}
]
}
会自动生成:
java
private List<Item> list;
符合常规 Java 写法。
3. 注释解析
如果 JSON 中带有注释:
json
{
"name": "test", // 姓名
"age": 10 // 年龄
}
生成的 Java 类中会保留这些注释:
java
private String name; // 姓名
private Integer age; // 年龄
这一点在接口维护或者代码阅读时会更清晰。
4. 自动生成 Getter / Setter
生成的代码包含完整的 getter / setter 方法,可以直接使用,不需要再手动补。
5. JSON 格式校验
在转换前会进行 JSON 校验。
如果格式有问题,会提示错误位置,方便定位问题。
示例
输入:
json
{
"name": "test", // 姓名
"age": 10, // 年龄
"addr": "四川成都", // 地址
"cls_info": [
{
"name": "篮球班", // 班名
"teacher": "张老师" // 老师
}
]
}
输出:
java
public class ClsInfo {
private String name; // 班名
private String teacher; // 老师
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public String getTeacher() {
return this.teacher;
}
public void setTeacher(String teacher) {
this.teacher = teacher;
}
}
public class GenerateObj {
private String name; // 姓名
private Integer age; // 年龄
private String addr; // 地址
private List<ClsInfo> cls_info; // 班级
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return this.age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getAddr() {
return this.addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
public List<ClsInfo> getCls_info() {
return this.cls_info;
}
public void setCls_info(List<ClsInfo> cls_info) {
this.cls_info = cls_info;
}
}
使用场景
- 接口返回数据结构快速建模
- 第三方 API 对接
- 减少手写 POJO 的重复工作
地址
一点说明
这个工具主要是把 JSON → Java 这一步做得更省事一点:
- 嵌套结构自动拆分
- 数组自动转 List
- 注释尽量保留
- 直接生成完整可用代码
如果你平时写 Java,这一步其实还是挺省时间的。