🎉 我们上线了 Product Hunt!支持我们并给我们反馈
返回

JSON 转 Java Bean 转换器

将 JSON 对象转换为 Java 类,可选择使用 Lombok 支持

配置

基本使用

将您的 JSON 对象转换为具有适当 getter、setter 和可选 Lombok 支持的 Java Bean 类。

基本步骤

  • 在输入框中输入您的 JSON 或使用加载示例按钮
  • 配置包名、类名和 Lombok 设置
  • 点击"生成 Java Bean"以创建 Java 类
  • 复制生成的代码供您使用

JSON 与 Java 的类型映射

类型是根据你粘贴的示例值推断出来的,而不是来自 schema,因此生成的类只能和输入的 JSON 一样准确。请提供一份有代表性的文档——把所有可选字段都填上值——并对照下表检查是否符合你的领域模型。

JSON 值Java 类型说明
"hello"String所有未被识别为日期的带引号的值,默认都映射为 String。
"2024-01-01T00:00:00Z"LocalDateTime符合 ISO 8601 格式的字符串会映射为 LocalDateTime。而 Unix 时间戳是以数字形式出现的,因此会变成 Integer 或 Double。
30Integer整数会映射为 Integer。超出 32 位范围的值需要手动改成 Long。
95.5Double带小数部分的数字都会映射为 Double。涉及金额时请改用 BigDecimal——Double 不适合做货币运算。
trueBoolean全部使用包装类型,这样字段缺失时可以是 null,而不会被悄悄当成 false。
["a", "b"]List<String>元素类型根据第一个元素推断。混合类型的数组会退回 List<Object>,而空数组则完全无法推断。
{ ... }NestedClass每个嵌套对象都会生成一个以其字段命名的静态内部类。
nullObjectnull 不携带任何类型信息,因此会输出 Object。确定实际类型后请自行替换。

嵌套对象与集合

嵌套结构会被转换成以所属字段命名的静态内部类,因此一次粘贴就能得到一个完整、可编译的文件,而不是一个只有 Object 字段的扁平类。

输入的 JSON:

{
  "id": 41,
  "customer": { "name": "Ada", "email": "ada@example.com" },
  "items": [{ "sku": "A-1", "qty": 2 }]
}

生成的类:

public class Order {
    private Integer id;
    private Customer customer;
    private List<Items> items;

    public static class Customer {
        private String name;
        private String email;
    }

    public static class Items {
        private String sku;
        private Integer qty;
    }
}

命名与集合的处理规则

  • 内部类以其字段命名,并将首字母大写——customer 字段会生成 Customer 类。
  • 对象数组会生成 List<T>,其中 T 是根据第一个元素生成的内部类。
  • 嵌套会一直向下展开,每一层都会新增一个内部类。
  • 不同层级上同名的字段会解析成同一个类名,如果它们结构不同,请重命名其中一个。
  • 空数组会得到 List<Object>,因为没有元素可供推断——请改为提供有内容的示例。

功能特点

可用功能

  • 可选的 Lombok 集成(@Data、@NoArgsConstructor、@AllArgsConstructor)
  • 智能 JSON 值类型推断
  • 支持嵌套对象和数组
  • 适当的代码格式化和导入
  • JSON 验证和错误检查

使用技巧

使用建议

  • 生成类之前先验证您的 JSON
  • 使用 Lombok 减少样板代码
  • 使用反映数据结构的有意义类名
  • 遵循 Java 包命名约定(例如:com.example.model)
  • 对于复杂类型,考虑生成多个类

注意:转换器生成具有适当封装的标准 Java Bean 类。Lombok 注解可以显著减少样板代码的数量。

Rocks Dev Dock 发布了 🥳

在工具内按 '+' 将您喜欢的工具添加到您的 dock。

使用我们的工具时不会收集数据,只是工具。