JSON 转 Java 实体类工具(支持嵌套与注释解析)

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 的重复工作

地址

https://gotool.top


一点说明

这个工具主要是把 JSON → Java 这一步做得更省事一点:

  • 嵌套结构自动拆分
  • 数组自动转 List
  • 注释尽量保留
  • 直接生成完整可用代码

如果你平时写 Java,这一步其实还是挺省时间的。

相关推荐
古法老登瞎折腾3 小时前
大数据智能运维实战(十一):运维 MCP 的工程化——权限、限流、审计与错误处理
java·大数据·运维·spring ai·mcp
飞Link3 小时前
什么是 AirSim?一文读懂无人机仿真平台
python·算法·无人机
曲径海盗3 小时前
【Python 学习第 38 天】for 循环
python·学习笔记·编程入门
智能运维指南4 小时前
研制过程“两张皮“怎么破:研制一体化支撑平台的定位、能力边界与落地前提
java·前端·人工智能·嘉为蓝鲸
在世修行4 小时前
智学文枢:变式题生成引擎
python·ai·pyside·题目生成
yz_aiks4 小时前
Spring AI 2.1 ChatMemory 已过时用什么替代:迁移到 Session Memory 实战(JDBC 存储与会话压缩)
java·spring boot·大模型·ai agent·spring ai
金銀銅鐵5 小时前
[Java] 用 GUI 展示 EnumMap 增删键值对时的内部变化
java·后端·ai编程
学长毕设5 小时前
基于SpringBoot的上门洗车服务系统设计与实现
java·spring boot·后端
jason成都5 小时前
RTKLIB-Java 多基线联合RTK:FIX率从0%到91.5%的三层根因修复
java·gnss·rtklib·rtklib_java
鱼宵5 小时前
Stream 终端操作一次讲透:collect、count、reduce 怎么选
java·stream·终端操作