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 → JSON
        String userJson = HutoolJsonUtil.toJson(user1);
        System.out.println("Bean → JSON: " + userJson);

        // 2. List → JSON
        String listJson = HutoolJsonUtil.toJson(userList);
        System.out.println("List → JSON: " + listJson);

        // 3. JSON → Bean
        User 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 → JSON JSONUtil.toJsonStr(obj)
List → JSON JSONUtil.toJsonStr(list)
JSON → Bean JSONUtil.toBean(json, Bean.class)
JSON → List JSONUtil.toList(JSONUtil.parseArray(json), Bean.class)
JSON → Map JSONUtil.toBean(json, new TypeReference<>(){})
相关推荐
这周也會开心22 分钟前
Java-多态
java·开发语言
Forward♞23 分钟前
Qt——网络通信(UDP/TCP/HTTP)
开发语言·c++·qt
XH华25 分钟前
C语言第十三章自定义类型:联合和枚举
c语言·开发语言
2401_858286111 小时前
OS26.【Linux】进程程序替换(下)
linux·运维·服务器·开发语言·算法·exec·进程
草莓熊Lotso1 小时前
【C语言强化训练16天】--从基础到进阶的蜕变之旅:Day13
c语言·开发语言·刷题·强化训练
一尘之中2 小时前
在Python 2.7中安装SQLAlchemy的完整指南
开发语言·python·ai写作
黄贵根2 小时前
使用JDK11标准 实现 图数据结构的增删查改遍历 可视化程序
java·开发语言·数据结构
电商数据girl2 小时前
Python 爬虫获得淘宝商品详情 数据【淘宝商品API】
大数据·开发语言·人工智能·爬虫·python·json·php
盒马盒马2 小时前
Rust:变量、常量与数据类型
开发语言·rust
傻啦嘿哟2 小时前
Rust爬虫实战:用reqwest+select打造高效网页抓取工具
开发语言·爬虫·rust