跳到主要内容

JSON 转 Java POJO

样例 JSON 生成 Java 类与 getter/setter,Jackson 注解可选。

本地计算 · 数据不出浏览器
样例 JSON
0 字符1 行0 B

生成结果(本地推断,零上传)

粘贴样例 JSON 后,类型定义会显示在这里。

使用说明

这个工具解决什么问题

对接 Java 服务,照着接口响应示例手写 POJO 是件琐碎事:字段名转 camelCase、逐个写 getter 与 setter、原名对不上还要补 Jackson 注解,嵌套对象得拆成多个类,import 语句漏一个编译就报错。这个工具从 JSON 样例直接生成整套 POJO:嵌套类先定义后引用,getter/setter 齐全,注解与 import 自动处理,输出即能编译。与站内 TypeScript、Python、Go 版本共用同一推断内核,同一份样例四个语言口径一致。纯浏览器本地运行,样例数据不上传。

核心能力

getter/setter 全生成:每个字段配标准访问器,布尔类型自动用 is 前缀。命名自动对齐:字段名转 camelCase,原名非 camelCase 时补 @JsonProperty 注解指向原键名,序列化反序列化不跑偏。混合类型兜底:同字段多类型以 Object 收场并给出警告。import 按需生成:用到才写,类定义先声明后引用,输出即能编译。本地推断:样例在浏览器内解析,数据不出本机。

使用建议

用字段最全的响应样例做输入,嵌套越深越能少手写;类名默认 Root,可改成业务名(如 OrderDto),嵌套类名随之联动;生成后重点看警告里 Object 兜底的字段,按业务改成具体类型;数组元素结构差异大时,并集后的类字段可能偏多,删掉用不到的即可。样例只是快照,可空字段建议按需改成包装类型再定型。

常见问题

为什么要补 @JsonProperty 注解?

Jackson 默认按 getter/setter 推断 JSON 字段名。原键名不是合法 camelCase(如 user_name)时,字段名会被清洗成 camelCase,不加注解就对不上原键。工具只在两者不一致时补注解,原名本身就是 camelCase 则保持代码干净。

混合类型的字段怎么处理?

同一字段既有字符串又有数字时,以 Object 兜底并给出警告——Java 没有现成类型能同时表达两种类型,需要你按业务改成具体类型或自定义反序列化器。

和 TypeScript/Python/Go 版本是什么关系?

四个工具共用同一套类型推断内核,同一份样例在四种语言里得到一致的类型划分(数组元素结构取并集、空数组推断占位类型的口径相同),不会各写一套导致漂移。

import 会全量生成吗?

按需生成:代码里用到 List 才补 java.util.List,出现 @JsonProperty 才补 jackson 注解的 import,不堆冗余,输出即能编译。

JSON 转 Go Struct

样例 JSON 生成 Go struct 与 json tag,混合类型 any 兜底。

JSON 转 Python 模型

样例 JSON 生成 Pydantic BaseModel 或 dataclass,别名自动补。

JSON 转 C# 类

样例 JSON 生成 C# 类,PascalCase 与 JsonPropertyName 自动补。

查看更多格式转换,或浏览全部工具。