当前位置: 首页 > news >正文

Hutool 的完整 JSON 工具类示例

Hutool 的完整 JSON 工具类示例,覆盖:

  • Bean → JSON

  • List → JSON

  • JSON → Bean

  • JSON → List(支持泛型)

  • JSON → Map / List<Map>

Hutool 的 API 非常简洁,一行即可搞定,适合“快速开发”场景。


1️⃣ Maven 依赖

<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.25</version>
</dependency>

2️⃣ 示例实体类(同上)

@Data
public class User {private Long id;private String name;private LocalDateTime createTime;
}

3️⃣ 工具类封装(可选,一行即可)

Hutool 已提供静态方法,无需额外封装;下面给出一个简单包装,方便统一异常处理:

import cn.hutool.json.JSONUtil;
import cn.hutool.json.TypeReference;import java.util.List;
import java.util.Map;public class HutoolJsonUtil {/** 对象 → JSON */public static String toJson(Object obj) {return JSONUtil.toJsonStr(obj);}/** JSON → Bean */public static <T> T toBean(String json, Class<T> clazz) {return JSONUtil.toBean(json, clazz);}/** JSON → List<Bean> */public static <T> List<T> toList(String json, Class<T> clazz) {return JSONUtil.toList(JSONUtil.parseArray(json), clazz);}/** JSON → Map */public static Map<String, Object> toMap(String json) {return JSONUtil.toBean(json, new TypeReference<Map<String, Object>>() {});}/** JSON → List<Map> */public static List<Map<String, Object>> toListMap(String json) {return JSONUtil.toBean(json, new TypeReference<List<Map<String, Object>>>() {});}
}

4️⃣ 使用示例

public class HutoolJsonDemo {public static void main(String[] args) {// 构造数据User user1 = new User(1L, "张三", LocalDateTime.now());User user2 = new User(2L, "李四", LocalDateTime.now());List<User> userList = List.of(user1, user2);// 1. Bean → JSONString userJson = HutoolJsonUtil.toJson(user1);System.out.println("Bean → JSON: " + userJson);// 2. List → JSONString listJson = HutoolJsonUtil.toJson(userList);System.out.println("List → JSON: " + listJson);// 3. JSON → BeanUser userObj = HutoolJsonUtil.toBean(userJson, User.class);System.out.println("JSON → Bean: " + userObj);// 4. JSON → List<Bean>List<User> users = HutoolJsonUtil.toList(listJson, User.class);System.out.println("JSON → List<Bean>: " + users);// 5. JSON → Map / List<Map>Map<String, Object> map = HutoolJsonUtil.toMap(userJson);System.out.println("JSON → Map: " + map);}
}

5️⃣ 控制台输出示例复制

Bean → JSON: {"id":1,"name":"张三","createTime":"2024-06-01 15:30:00"}
List → JSON: [{"id":1,"name":"张三","createTime":"2024-06-01 15:30:00"},{"id":2,"name":"李四","createTime":"2024-06-01 15:30:00"}]
JSON → Bean: User(id=1, name=张三, createTime=2024-06-01T15:30)
JSON → List<Bean>: [User(...), User(...)]
JSON → Map: {id=1, name=张三, createTime=2024-06-01 15:30:00}

✅ 总结

场景Hutool 方法
Bean → JSONJSONUtil.toJsonStr(obj)
List → JSONJSONUtil.toJsonStr(list)
JSON → BeanJSONUtil.toBean(json, Bean.class)
JSON → ListJSONUtil.toList(JSONUtil.parseArray(json), Bean.class)
JSON → MapJSONUtil.toBean(json, new TypeReference<>(){})
http://www.lryc.cn/news/607470.html

相关文章:

  • 使用社区 EE 镜像运行 Ansible
  • Redis的ZipList、SkipList和ListPack之间的区别
  • 在Alpine Linux上配置Redis使用NFS存储的完整指南
  • 李宏毅深度学习教程 第4-5章 CNN卷积神经网络+RNN循环神经网络
  • 每天一点跑步运动小知识
  • 逻辑回归算法 银行贷款资格判断案例,介绍混淆矩阵与正则化惩罚
  • AG-UI 协议全面解析--下一代 AI Agent 交互框架医疗应用分析(下)
  • Python 项目路径配置完全指南
  • 51单片机入门:模块化编程
  • C#常见的转义字符
  • 智能Agent场景实战指南 Day 29:Agent市场趋势与前沿技术
  • 31. 伪类和伪元素区别
  • 板卡型授时设备的优势总结.北斗pcie对时装置,北斗双模pcie授时板卡,双模pcie授时板卡
  • 二建机电工程专业都考哪些知识点?
  • WordPress 前端显示英文,后台显示中文的设置
  • 前端SWR策略:优化数据请求
  • 电商项目_性能优化_数据同步
  • Altium 移除在原理图之外的元器件
  • Linux权限提升
  • 【CDH × Docker】一次测试部署,N 次复用的环境镜像方案
  • Qt结合ffmpeg实现图片参数调节/明亮度对比度饱和度设置/滤镜的使用
  • 菜鸟教程Shell笔记 数组 运算符 echo命令
  • 一文了解 `package.json` 和 `package-lock.json`文件
  • vscode cursor配置php的debug,docker里面debug
  • 在线免费的AI文本转语音工具TTSMaker介绍
  • 流式编程终端操作
  • 【Halcon 】Halcon 实战:如何为 XLD 模板添加极性信息以提升匹配精度?
  • 32. flex 的子元素可以浮动吗
  • 三星固态硬盘PM1643A停产后,PM1653能代替PM1643A吗?有兼容性问题吗?
  • 【PHP】接入百度AI开放平台人脸识别API,实现人脸对比