开发者工具 · JSON / 数据格式

JSON 转 Java

POJO/Lombok/Jackson

✓本地处理 · 不上传 ✓免费 · 无需登录 ✓无次数限制 累计 130 次使用
JSON 输入数据
Java POJO · Lombok · Jackson · 嵌套
Java 类将在这里呈现 —— 点「示例」试试
就绪 · 左侧粘贴 JSON,自动推断类型并生成 Java 类,全程本地处理
第一节

关于本工具

About

从后端接口返回的 JSON 里拿到的字段名是 snake_case,但 Java 实体类习惯用 camelCase——手动改一个两个还行,几十个字段逐个改就太容易漏了。这个工具直接把 JSON 转成带 @JsonProperty 注解的 POJO,支持 Lombok 和 Jackson 两种风格,生成后复制即用。所有解析都在浏览器本地完成,JSON 内容不会离开电脑。

第二节

使用指南

Getting Started

使用步骤

  1. 1在左侧编辑框粘贴或键入 JSON 文本,右侧实时预览生成的 Java 类代码,无需手动触发
  2. 2点击「POJO」「Lombok」「Jackson」三个标签切换输出风格,代码结构随标签即时更新
  3. 3勾选「生成构造函数」「生成 toString」等选项,右侧代码区同步追加对应方法
  4. 4点击代码区右上角的「复制」图标,将当前 Java 代码写入剪贴板,粘贴到 IDE 即可使用

输入输出示例

输入输出说明
{"name":"张三","age":30,"city":"北京"}public class Person { private String name; private int age; private String city; }常规:最简对象,验证基本字段类型映射(String/int),无嵌套
{"id":1,"title":"JSON转Java","tags":["工具","开发"],"published":true}public class Article { private int id; private String title; private List<String> tags; private boolean published; }常规:含数组(List<String>)和布尔类型,验证集合与基本类型处理
{}public class EmptyClass { }边界:空对象,验证工具能否生成无字段的 POJO 类
{"value":null}public class NullValue { private Object value; }边界:null 值字段,验证工具是否自动推断为 Object 类型(而非报错)
{"@type":"com.example.User","name":"李四"}public class User { private String name; }边界:JSON 含 @type 等元字段,验证工具是否忽略或保留(通常忽略,只生成业务字段)
{"name":"测试","age":"25"}public class Test { private String name; private String age; }易错:age 在 JSON 中是字符串而非数字,工具按原始类型映射为 String,用户需自行校验
{"user-name":"admin","user.email":"admin@test.com"}public class User { @JsonProperty("user-name") private String userName; @JsonProperty("user.email") private String userEmail; }易错:JSON key 含连字符和点号,工具自动生成 @JsonProperty 注解映射到合法 Java 字段名

常见错误对照

1.JSON 键名未用双引号包裹

✗ 错误{ name: "张三", age: 25 }
✓ 修复{ "name": "张三", "age": 25 }

JSON 规范要求所有键名必须用双引号包裹。无引号的键名是 JavaScript 对象字面量写法,不是合法 JSON,工具无法解析。

2.字符串值用了单引号

✗ 错误{ "name": '张三' }
✓ 修复{ "name": "张三" }

JSON 标准只允许双引号包裹字符串值。单引号是 JavaScript 语法,JSON 解析器会直接报错。

3.末尾多余逗号

✗ 错误{ "name": "张三", "age": 25, }
✓ 修复{ "name": "张三", "age": 25 }

JSON 不允许末尾逗号(trailing comma)。虽然 JavaScript 数组/对象允许,但 JSON 解析器遇到会抛出语法错误。

4.数字值加了引号变成字符串

✗ 错误{ "age": "25" }
✓ 修复{ "age": 25 }

加引号后 age 字段在 Java 中会生成 String 类型而非 int/Long,导致后续数值计算或数据库映射类型不匹配。

5.布尔值写成小写或引号形式

✗ 错误{ "active": "true" } 或 { "active": true }
✓ 修复{ "active": true }

JSON 布尔值必须是小写 true/false。写成字符串 "true" 会生成 String 字段;写成大写 True 则解析失败。

6.嵌套 JSON 未正确转义反斜杠

✗ 错误{"path": "C:\Users\test"}
✓ 修复{"path": "C:\\Users\\test"}

JSON 字符串中反斜杠是转义字符。Windows 路径的单个反斜杠会被解释为转义序列,必须用 \\ 表示字面反斜杠。

7.日期格式未标准化

✗ 错误{ "birthday": "2024/1/1" }
✓ 修复{ "birthday": "2024-01-01" }

Jackson 默认日期格式为 ISO 8601(yyyy-MM-dd)。非标准格式(如斜杠分隔、缺少前导零)会导致反序列化失败或生成错误的 Date 字段。

8.数组元素类型不一致

✗ 错误{ "list": [1, "two", true] }
✓ 修复{ "list": [1, 2, 3] }

工具会根据 JSON 数组推断 Java 泛型类型。混合类型会导致生成 List<Object>,失去类型安全,后续使用需频繁类型转换。

9.null 值字段未考虑包装类型

✗ 错误{ "score": null } → 期望 int score
✓ 修复使用 Integer score 或提供默认值

JSON 的 null 不能赋值给 Java 基本类型(int/boolean)。工具会生成包装类型(Integer/Boolean),若业务要求基本类型需手动处理。

10.字段名包含 Java 关键字

✗ 错误{ "class": "一班", "new": true }
✓ 修复{ "className": "一班", "isNew": true }

class、new、static 等是 Java 保留字,不能作为变量名。工具会添加 @JsonProperty 注解映射,但代码可读性差,建议 JSON 端直接改名。

第三节

工作原理

How It Works

核心公式

Java 类定义 = @Data @AllArgsConstructor @NoArgsConstructor @Builder + 字段声明 + Jackson 注解

变量说明

  • @DataLombok 生成 getter/setter/toString 等
  • @AllArgsConstructorLombok 生成全参构造器
  • @NoArgsConstructorLombok 生成无参构造器
  • @BuilderLombok 生成建造者模式
  • 字段声明JSON 键名对应 Java 类型+变量名
  • Jackson 注解如 @JsonProperty 映射 JSON 键名

示例

输入 JSON {"name":"张三","age":25},工具生成:@Data @AllArgsConstructor @NoArgsConstructor @Builder public class Person { @JsonProperty("name") private String name; @JsonProperty("age") private int age; }。字段 name 映射 JSON 键 name,age 映射 age,Lombok 注解自动生成构造器与 getter/setter。

原始 JSON 文本(字符串输入)解析 JSON 结构识别键值类型(对象 / 数组 / 嵌套)生成 Java 类骨架字段 + getter/setter(POJO 模板)输出代码可选:注入注解(Lombok / Jackson)生成注解版代码(@Data / @JsonProperty)输出代码
用户输入 本地处理 输出结果
第五节

常见问题

Q & A
问我有一段 JSON 带注释和尾逗号,直接贴进去报错怎么办?+
答

标准 JSON 不允许注释(// 或 /* */)和尾逗号(如 "a": 1, )。本工具按严格 JSON 解析,遇到会直接报红。解决办法:复制前先用编辑器或脚本去掉注释和尾逗号;如果 JSON 是别人给的且无法修改,可先在线 JSON 校验工具清洗一遍再贴过来。本工具不自动清洗,因为会影响字段映射准确性。

问生成的 Java 类里字段全是小写开头的驼峰,但我的 JSON 字段是下划线命名,怎么对应?+
答

本工具默认将 JSON 字段名直接转为 Java 驼峰(如 user_name → userName)。如果你需要保留原字段名(如 user_name 对应到 Java 的 user_name 字段),可在结果区勾选“使用 Jackson @JsonProperty”选项,工具会自动在字段上添加 @JsonProperty("user_name") 注解,这样 Jackson 反序列化时就能正确映射。

问为什么生成的类里没有 getter/setter,只有一堆 public 字段?+
答

本工具支持三种输出模式:POJO(纯字段 + getter/setter 手写)、Lombok(字段 + @Data)、Jackson(字段 + 注解)。默认是 Lombok 模式,只生成字段和 @Data 注解,不显式写 getter/setter。如果你需要看到完整 getter/setter 代码,请在结果区切换为“POJO”模式。如果项目不用 Lombok,记得先切模式再复制。

问JSON 里有个字段是 null 或空数组,生成的类会不会漏掉?+
答

不会漏掉。本工具解析 JSON 时,只要字段名在 JSON 中出现过(即使值为 null),都会生成对应 Java 字段。但如果 JSON 里某个字段完全不存在(比如对象里根本没这个键),工具无法得知它的存在,生成的类就不会包含。建议提供一份包含所有字段的完整 JSON 样本(含空值),避免遗漏。数组类型统一生成 List<T>,即使实际数据是空数组。

问生成的 Java 类里 import 包全不全?我复制过去编译报找不到类。+
答

本工具生成的代码包含必要 import 语句:Jackson 模式会引入 com.fasterxml.jackson.annotation.*;Lombok 模式引入 lombok.*;POJO 模式无额外 import。但如果你项目中 Jackson 或 Lombok 的 jar 没引入,编译会报错。另外,泛型类型如 List、Map 也会自动 import。如果遇到编译报错,先确认项目中是否已添加对应依赖(Maven/Gradle)。

问JSON 嵌套特别深,生成的类文件会很多,能一次全生成吗?+
答

可以。本工具会递归解析嵌套 JSON,为每一层对象生成独立的 Java 类文件。结果区会按“类名.java”分块展示,直接全选复制即可。但注意:如果嵌套超过 5 层,生成的类数量可能较大(如每层一个类),建议先确认是否需要全部类,或只取顶层类手动拆分。本工具暂不支持按需选择生成某几层。

问我 JSON 里有个字段叫 class,生成的 Java 类里冲突了怎么办?+
答

JSON 字段名 class 在 Java 中是保留关键字,直接作为字段名会编译报错。本工具检测到这种情况时,会自动在字段名后加下划线(变成 class_),并添加 @JsonProperty("class") 注解(Jackson 模式下)以保证序列化/反序列化正确。如果是 Lombok 或 POJO 模式,字段名就是 class_,需手动处理映射。

隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。

↑↓选择 ↵打开 ⌘+↵新窗口 esc关闭