关于此工具
JSON 转 Java POJO 工具可将粘贴的 JSON 示例转换为 Java 模型类,方式与 jsonschema2pojo 类似,但可在你的浏览器中即时完成。它解析 JSON,递归推断 Java 类型,并为每个对象输出一个类:字符串变为 String,整数变为 int 或 long,其他数字变为 double,布尔值变为 boolean,数组变为 List<T>,嵌套对象则各自生成 PascalCase 类并声明在使用它们的父级之前。
所有解析和生成都用 JSON.parse 和纯 JavaScript 在本地运行,因此你的载荷永不离开页面。字段采用 camelCase;当 JSON 键还不是 camelCase 时,工具会添加 @JsonProperty("originalKey")(Jackson)或 @SerializedName("originalKey")(Gson),在纯字段模式下则不添加任何注解。任何样本中可能为 null 的字段会使用装箱包装类型(Integer, Long, Double, Boolean),使 null 可表示。Jackson 类带有 @JsonIgnoreProperties(ignoreUnknown = true) 以实现向前兼容。
注解风格开关可选择 Jackson(默认)、Gson 或不使用注解,且只包含实际用到的导入。访问器开关可在私有字段上生成的 getX()/setX() 方法(默认)和纯公共字段之间选择。复制结果,或将其下载为 .java 文件,直接放入你的项目。
常见问题
会生成哪些 Java 类型?
string 变为 String,整数变为 int(当值超出 int 范围时变为 long),非整数数字变为 double,布尔值变为 boolean,数组变为 List<T>,对象变为命名的类。可能为 null 的字段使用装箱类型——Integer, Long, Double, Boolean。
Jackson 还是 Gson 注解?
注解开关可选择 Jackson(@JsonProperty,外加 @JsonIgnoreProperties(ignoreUnknown = true))、Gson(@SerializedName)或无。只有当 camelCase 字段名与原始 JSON 键不同时才会添加注解。
我会得到 getter 和 setter 吗?
默认情况下每个私有字段都会获得生成的 getX() 和 setX()。如果你更喜欢无访问器方法的 record 风格裸字段,可将访问器开关切换为纯公共字段。
我的 JSON 会被发送到某处吗?
不会。JSON 完全在你的浏览器中用纯 JavaScript 解析并生成类。不上传任何内容,因此你可以放心粘贴内部 API 响应。