如何利用_CodeGeex_自动将_JSON_数据结构转换为_Java_实体类
先说一个核心判断:当你从接口拿到一串 JSON,想把它快速变成可编译、带注解、字段类型准确的 Ja va 实体类时,靠手敲不仅容易出错,还常会漏掉 @JsonProperty 或 @SerializedName 这类关键信息。这事儿有更靠谱的路子。
假设你手头有一份合法的 JSON(注意,必须是合法的 JSON,包含嵌套对象、数组、甚至 null 值都可以),你只需要复制完整的响应体,不要截断,不要加任何说明文字。如果是从浏览器开发者工具 Network 面板里获取,右键点响应 → Copy → Copy response 就好。这里有个容易踩的坑:
如果 JSON 里有中文键名但没有加双引号(比如 {姓名: "张三"}),那它压根不合法,CodeGeex 会直接报错,根本没法解析

把 JSON 扔进编辑器,让模型干活
在 CodeGeex 的编辑器中,确保模型选的是「CodeGeex-4」。把刚才准备好的 JSON 粘贴进去,然后在末尾换行,加上一段清晰的提示词:
“请将以上 JSON 转换为 Ja va 实体类,使用 Lombok 注解,String 类型字段加 @JsonProperty,int/Integer 字段自动识别,嵌套对象转为内部静态类,数组转为 List<对应类型>,忽略 null 值字段的默认值设置。”
提交请求后,等个 3 到 8 秒,模型就会输出完整的 Ja va 类代码,包含 package、import、class 定义以及所有嵌套结构。
生成后再做一轮人工校验,别偷懒
这一步看似多余,但省掉它往往就是出 bug 的开端。落地时建议按以下顺序过一遍:
第一步,检查 package 声明是否匹配你项目的规范。如果缺了,手动补上,比如 package com.example.api.dto;;
第二步,确认 import 列表有没有漏掉 Lombok 和 Jackson 的注解。缺什么补什么:import lombok.Data;、import com.fasterxml.jackson.annotation.JsonProperty;;
第三步,逐字段对一下类型。比如 JSON 里写的是 "123",但语义上它是个数字,模型可能误判成 String,这时候就得手工改成 Integer 或 Long;
第四步,遇上 JSON 数组(比如 "tags": ["a","b"]),期望的字段类型应该是 private List。如果模型给你生成了 private String[] tags;,果断替换,顺带补上 @JsonProperty("tags");
第五步,保存文件,用 IDE 编译一下。几乎所有红色报错里,最常见的那个就是嵌套类没加 static。解决办法很简单:在嵌套类的 class 前面加个 static 关键字就行。