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<>(){})
相关推荐
程序员编程指南1 小时前
Qt 嵌入式界面优化技术
c语言·开发语言·c++·qt
q__y__L1 小时前
C#线程同步(二)锁
开发语言·性能优化·c#
二川bro2 小时前
第二篇:Three.js核心三要素:场景、相机、渲染器
开发语言·javascript·数码相机
云泽8082 小时前
数据结构前篇 - 深入解析数据结构之复杂度
c语言·开发语言·数据结构
卷卷的小趴菜学编程2 小时前
Qt-----初识
开发语言·c++·qt·sdk·qt介绍
天天进步20152 小时前
Python游戏开发引擎设计与实现
开发语言·python·pygame
蹦蹦跳跳真可爱5893 小时前
Python----MCP(MCP 简介、uv工具、创建MCP流程、MCP客户端接入Qwen、MCP客户端接入vLLM)
开发语言·人工智能·python·语言模型
MediaTea3 小时前
Python 库手册:getopt Unix 风格参数解析模块
服务器·开发语言·python·unix
王尼莫啊3 小时前
【立体标定】圆形标定板标定python实现
开发语言·python·opencv