当前位置: 首页 > 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.dtcms.com/a/309431.html

相关文章:

  • 计算机(电脑)是什么?零基础硬件软件详解
  • FreeSWITCH与Java交互实战:从EslEvent解析到Spring Boot生态整合的全指南
  • WPF中使用iconfont图标
  • 【股票数据API接口02】如何获取股票最新分时交易数据之Python、Java等多种主流语言实例代码演示通过股票数据接口获取数据
  • VR 博物馆:开启文化探索新旅程
  • Python深度解析与爬虫进阶:从理论到企业级实践
  • 自建rustdesk服务器过程记录
  • 宝塔服务器挂载数据盘
  • 在vscode 如何运行a.nut 程序(Squirrel语言)
  • spring boot + mybatis + mysql 只有一个实体类的demo
  • 飞算 JavaAI 中 SQL 另存为脚本功能详解
  • 24 SAP CPI 调用SAP HTTP接口
  • nacos升级tomcat
  • 《C++初阶之STL》【stack/queue/priority_queue容器适配器:详解 + 实现】(附加:deque容器介绍)
  • Eclipse中导入新项目,右键项目没有Run on Server,Tomcat的add and remove找不到项目
  • LangChain框架入门03:PromptTemplate 提示词模板
  • YOLO---04YOLOv3
  • 如何撰写专业的面试邀请函(含模板)
  • PyTorch 应用于3D 点云数据处理汇总和点云配准示例演示
  • 一套视频快速入门并精通PostgreSQL
  • 【PHP】接入百度AI开放平台人脸识别API,实现人脸对比
  • 如何填写PDF表格的例子
  • SQL中的GROUP BY用法
  • vue3使用vue-pdf-embed实现前端PDF在线预览
  • EasyExcel 格式设置大全
  • Qt-----初识
  • Qt 跨平台应用开发经验分享
  • 数据结构:链表(Linked List)
  • ModeSeq论文阅读
  • 使用 Vive Tracker 替代 T265 实现位姿获取(基于 Ubuntu + SteamVR)