主题切换
🔄 JSON转换工具(JsonHelper)
📖 功能介绍
TIP
JsonHelper 是一个便捷的 JSON 数据转换工具类,提供对象序列化和反序列化功能,支持复杂对象转换、集合类型转换等,简化 JSON 数据处理过程。
🛠️ 核心功能
1. JSON序列化
方法 | 说明 | 参数类型 | 返回类型 |
---|---|---|---|
toJsonString | 对象转JSON字符串 | Object | String |
2. JSON反序列化
方法 | 说明 | 参数类型 | 返回类型 |
---|---|---|---|
parseObject | JSON转对象 | String | Object |
parseObject | JSON转指定类型 | String, Class<T> | T |
parseArray | JSON转列表 | 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);
⚠️ 注意事项
类型安全
- 确保JSON结构与对象字段匹配
- 处理可能的类型转换异常
- 注意日期等特殊类型的处理
性能考虑
- 避免频繁创建大对象的转换
- 合理使用缓存机制
- 注意深层嵌套对象的性能
空值处理
- 注意null值的序列化策略
- 处理空字符串和空对象
- 考虑默认值设置
安全性
- 注意敏感数据的处理
- 防止JSON注入攻击
- 控制反序列化深度