Skip to content

🔄 JSON转换工具(JsonHelper)

📖 功能介绍

TIP

JsonHelper 是一个便捷的 JSON 数据转换工具类,提供对象序列化和反序列化功能,支持复杂对象转换、集合类型转换等,简化 JSON 数据处理过程。

🛠️ 核心功能

1. JSON序列化

方法说明参数类型返回类型
toJsonString对象转JSON字符串ObjectString

2. JSON反序列化

方法说明参数类型返回类型
parseObjectJSON转对象StringObject
parseObjectJSON转指定类型String, Class<T>T
parseArrayJSON转列表String, Class<T>List<T>

💡 使用示例

1. 对象转JSON

java
// 简单对象转换
User user = new User("张三", 25);
String jsonStr = JsonHelper.toJsonString(user);
// 结果: {"name":"张三","age":25}

// 复杂对象转换
Department dept = new Department();
dept.setName("技术部");
dept.setUsers(Arrays.asList(user));
String deptJson = JsonHelper.toJsonString(dept);
// 结果: {"name":"技术部","users":[{"name":"张三","age":25}]}

2. JSON转对象

java
// 转换为指定类型
String json = "{\"name\":\"张三\",\"age\":25}";
User user = JsonHelper.parseObject(json, User.class);


// 转换为泛型对象
String json = "{\"code\":0,\"data\":{\"name\":\"张三\"}}";
Response<User> response = JsonHelper.parseObject(json, Response.class);

3. JSON转列表

java
// 简单数组转换
String json = "[{\"name\":\"张三\"},{\"name\":\"李四\"}]";
List<User> users = JsonHelper.parseArray(json, User.class);

// 复杂集合转换
String json = "[{\"id\":1,\"items\":[{\"name\":\"商品1\"}]}]";
List<Order> orders = JsonHelper.parseArray(json, Order.class);

4. 复杂场景示例

java
// 嵌套对象转换
@Data
public class Response<T> {
    private int code;
    private String msg;
    private T data;
}

@Data
public class PageData<T> {
    private List<T> records;
    private int total;
}

// 分页数据转换
String json = "{\"code\":0,\"data\":{\"records\":[{\"name\":\"张三\"}],\"total\":100}}";
Response<PageData<User>> response = JsonHelper.parseObject(json, Response.class);

⚠️ 注意事项

  1. 类型安全

    • 确保JSON结构与对象字段匹配
    • 处理可能的类型转换异常
    • 注意日期等特殊类型的处理
  2. 性能考虑

    • 避免频繁创建大对象的转换
    • 合理使用缓存机制
    • 注意深层嵌套对象的性能
  3. 空值处理

    • 注意null值的序列化策略
    • 处理空字符串和空对象
    • 考虑默认值设置
  4. 安全性

    • 注意敏感数据的处理
    • 防止JSON注入攻击
    • 控制反序列化深度