Hutool糊涂包JSON相关方法汇总

目录

[1. JSON 对象 (JSONObject) 的创建](#1. JSON 对象 (JSONObject) 的创建)

[2. 向 JSONObject 添加键值对](#2. 向 JSONObject 添加键值对)

[3. 从 JSONObject 获取值](#3. 从 JSONObject 获取值)

[4. JSON 对象与字符串之间的转换](#4. JSON 对象与字符串之间的转换)

[5. JSON 对象与 Java Bean(POJO)之间的转换](#5. JSON 对象与 Java Bean(POJO)之间的转换)

[6. JSON 数组 (JSONArray) 的使用](#6. JSON 数组 (JSONArray) 的使用)

[7. JSON 数组与 Java List 之间的转换](#7. JSON 数组与 Java List 之间的转换)

[8. 判断 JSON 对象中是否包含某个键](#8. 判断 JSON 对象中是否包含某个键)

[9. 删除 JSON 对象中的键值对](#9. 删除 JSON 对象中的键值对)

[10. JSON 字符串与 Map 之间的转换](#10. JSON 字符串与 Map 之间的转换)

[11. JSON 数组与 Java 数组之间的转换](#11. JSON 数组与 Java 数组之间的转换)

[12. 深度克隆 JSON 对象](#12. 深度克隆 JSON 对象)

[13. JSON 字符串与 JSONArray 之间的转换](#13. JSON 字符串与 JSONArray 之间的转换)

[14. 将 JSON 对象转换为 JSONArray](#14. 将 JSON 对象转换为 JSONArray)

[15. 从 JSONArray 中提取 JSONObject](#15. 从 JSONArray 中提取 JSONObject)

[16. 将 JSONArray 转换为 List](#16. 将 JSONArray 转换为 List)


1. JSON 对象 (JSONObject) 的创建

java 复制代码
    @Test
    //JSON 对象 (JSONObject) 的创建
    public void method_1() {
        // 从字符串创建JSONObject
        String jsonString = "{\"姓名\":\"张三\", \"年龄\":25}";
        JSONObject jsonObject = JSONUtil.parseObj(jsonString);

        // 输出漂亮的格式化JSON字符串
        System.out.println(jsonObject.toStringPretty());
    }

2. 向 JSONObject 添加键值对

java 复制代码
    @Test
    //向 JSONObject 添加键值对
    public void method_2() {
        // 创建空的JSONObject
        JSONObject jsonObject = JSONUtil.createObj();

        // 添加键值对
        jsonObject.set("姓名", "张三");
        jsonObject.set("年龄", 21);
        jsonObject.set("是否学生", true);

        System.out.println(jsonObject.toStringPretty());
    }

3. 从 JSONObject 获取值

java 复制代码
    @Test
    //从 JSONObject 获取值
    public void method_3() {
        String jsonString = "{\"姓名\":\"张三\", \"年龄\":25, \"是否学生\":true}";
        JSONObject jsonObject = JSONUtil.parseObj(jsonString);

        // 获取值
        String name = jsonObject.getStr("姓名");
        int age = jsonObject.getInt("年龄");
        boolean isStudent = jsonObject.getBool("是否学生");

        System.out.println("姓名: " + name);
        System.out.println("年龄: " + age);
        System.out.println("是否学生: " + isStudent);
    }

4. JSON 对象与字符串之间的转换

java 复制代码
    @Test
    //JSON 对象与字符串之间的转换
    public void method_4() {
        // JSON 字符串 -> JSON 对象
        String jsonString = "{\"姓名\":\"张三\", \"年龄\":25}";
        JSONObject jsonObject = JSONUtil.parseObj(jsonString);

        // JSON 对象 -> JSON 字符串
        String jsonStr = jsonObject.toStringPretty();
        System.out.println(jsonStr);
    }

5. JSON 对象与 Java Bean(POJO)之间的转换

java 复制代码
@Test
    //JSON 对象与 Java Bean(POJO)之间的转换
    public void method_5() {
        // Java Bean
        User user = new User("张三", 25, true);

        // Java Bean -> JSON 对象
        JSONObject jsonObject = JSONUtil.parseObj(user);
        System.out.println(jsonObject.toStringPretty());

        // JSON 对象 -> Java Bean
        User user2 = JSONUtil.toBean(jsonObject, User.class);
        System.out.println(user2);
    }

6. JSON 数组 (JSONArray) 的使用

java 复制代码
    @Test
    //JSON 数组 (JSONArray) 的使用
    public void method_6() {
        // 创建JSON数组
        JSONArray jsonArray = JSONUtil.createArray();

        // 添加JSON对象到数组
        jsonArray.add(JSONUtil.createObj().set("姓名", "张三").set("年龄", 25));
        jsonArray.add(JSONUtil.createObj().set("姓名", "李四").set("年龄", 30));

        // 遍历JSONArray
        for (int i = 0; i < jsonArray.size(); i++) {
            JSONObject jsonObject = jsonArray.getJSONObject(i);
            System.out.println(jsonObject.toStringPretty());
        }
    }

7. JSON 数组与 Java List 之间的转换

java 复制代码
    @Test
    //JSON 数组与 Java List 之间的转换
    public void method_7() {
        // JSON 字符串 -> JSON 数组
        String jsonString = "[{\"name\":\"张三\", \"age\":25}, {\"name\":\"李四\", \"age\":30}]";
        JSONArray jsonArray = JSONUtil.parseArray(jsonString);

        // JSON 数组 -> List<Java Bean>
        List<User> userList = JSONUtil.toList(jsonArray, User.class);
        System.out.println(userList);

        // List<Java Bean> -> JSON 数组
        JSONArray jsonArrayFromList = JSONUtil.parseArray(userList);
        System.out.println(jsonArrayFromList.toStringPretty());
    }

8. 判断 JSON 对象中是否包含某个键

java 复制代码
    @Test
    //判断 JSON 对象中是否包含某个键
    public void method_8() {
        String jsonString = "{\"姓名\":\"张三\", \"年龄\":25}";
        JSONObject jsonObject = JSONUtil.parseObj(jsonString);

        // 检查是否包含某个键
        if (jsonObject.containsKey("姓名")) {
            System.out.println("姓名是: " + jsonObject.getStr("姓名"));
        } else {
            System.out.println("未找到姓名");
        }
    }

9. 删除 JSON 对象中的键值对

java 复制代码
    @Test
    //删除 JSON 对象中的键值对
    public void method_9() {
        JSONObject jsonObject = JSONUtil.createObj();
        jsonObject.set("姓名", "张三");
        jsonObject.set("年龄", 25);

        // 删除键值对
        jsonObject.remove("年龄");

        System.out.println(jsonObject.toStringPretty());
    }

10. JSON 字符串与 Map 之间的转换

java 复制代码
    @Test
    //JSON 字符串与 Map 之间的转换
    public void method_10() {
        // 创建一个 Map
        Map<String, Object> map = new HashMap<>();
        map.put("姓名", "张三");
        map.put("年龄", 25);
        map.put("是否学生", true);

        // Map -> JSON 字符串
        String jsonStr = JSONUtil.toJsonStr(map);
        System.out.println("JSON 字符串: " + jsonStr);

        // JSON 字符串 -> Map
        Map<String, Object> map2 = JSONUtil.toBean(jsonStr, Map.class);
        System.out.println("由 JSON 字符串转换的 Map: " + map2);
    }

11. JSON 数组与 Java 数组之间的转换

java 复制代码
    @Test
    //JSON 数组与 Java 数组之间的转换
    public void method_11() {
        // JSON 字符串 -> JSONArray
        String jsonString = "[\"张三\", \"李四\", \"王五\"]";
        JSONArray jsonArray = JSONUtil.parseArray(jsonString);

        // JSONArray -> Java 数组
        String[] namesArray = jsonArray.toArray(new String[0]);
        for (String name : namesArray) {
            System.out.println(name);
        }

        // Java 数组 -> JSON 字符串
        JSONArray jsonArrayFromNamesArray = JSONUtil.parseArray(namesArray);
        System.out.println("JSON 数组: " + jsonArrayFromNamesArray.toStringPretty());
    }

12. 深度克隆 JSON 对象

java 复制代码
    @Test
    //深度克隆 JSON 对象
    public void method_12() {
        JSONObject jsonObject = JSONUtil.createObj()
                .set("姓名", "张三")
                .set("年龄", 25);

        // 深度克隆 JSON 对象
        JSONObject clonedJsonObject = JSONUtil.parseObj(JSONUtil.toJsonStr(jsonObject));

        // 修改原始对象
        jsonObject.set("姓名", "李四");

        // 输出克隆对象
        System.out.println("克隆后的 JSON 对象: " + clonedJsonObject.toStringPretty());
        System.out.println("原始 JSON 对象: " + jsonObject.toStringPretty());
    }

13. JSON 字符串与 JSONArray 之间的转换

java 复制代码
    @Test
    //JSON 字符串与 JSONArray 之间的转换
    public void method_13() {
        // JSON 字符串 -> JSONArray
        String jsonString = "[{\"姓名\":\"张三\", \"年龄\":25}, {\"姓名\":\"李四\", \"年龄\":30}]";
        JSONArray jsonArray = JSONUtil.parseArray(jsonString);

        // 遍历 JSON 数组
        for (int i = 0; i < jsonArray.size(); i++) {
            System.out.println(jsonArray.getJSONObject(i).toStringPretty());
        }

        // JSONArray -> JSON 字符串
        String jsonArrayStr = jsonArray.toStringPretty();
        System.out.println("JSON 数组字符串: " + jsonArrayStr);
    }

14. 将 JSON 对象转换为 JSONArray

java 复制代码
    @Test
    //将 JSON 对象转换为 JSONArray
    public void method_14() {
        // 创建一个 JSON 对象
        JSONObject jsonObject = JSONUtil.createObj()
                .set("姓名", "张三")
                .set("年龄", 25);

        // 将 JSON 对象转换为 JSONArray
        JSONArray jsonArray = new JSONArray();
        jsonArray.add(jsonObject);

        System.out.println("JSON 数组: " + jsonArray.toStringPretty());
    }

15. 从 JSONArray 中提取 JSONObject

java 复制代码
    @Test
    //从 JSONArray 中提取 JSONObject
    public void method_15() {
        // 创建一个 JSON 数组
        String jsonString = "[{\"姓名\":\"张三\", \"年龄\":25}, {\"姓名\":\"李四\", \"年龄\":30}]";
        JSONArray jsonArray = JSONUtil.parseArray(jsonString);

        // 从 JSON 数组中提取第一个 JSON 对象
        JSONObject firstJsonObject = jsonArray.getJSONObject(0);
        System.out.println("第一个 JSON 对象: " + firstJsonObject.toStringPretty());
    }

16. 将 JSONArray 转换为 List

java 复制代码
    @Test
    //将 JSONArray 转换为 List
    public void method_16() {
        // JSON 字符串 -> JSONArray
        String jsonString = "[{\"姓名\":\"张三\", \"年龄\":25}, {\"姓名\":\"李四\", \"年龄\":30}]";
        JSONArray jsonArray = JSONUtil.parseArray(jsonString);

        // JSONArray -> List<JSONObject>
        List<Object> list = JSONUtil.toList(jsonArray, Object.class);
        System.out.println("从 JSON 数组转换的 List: " + list);

        // List<JSONObject> -> JSONArray
        JSONArray jsonArrayFromList = JSONUtil.parseArray(list);
        System.out.println("从 List 转换的 JSON 数组: " + jsonArrayFromList.toStringPretty());
    }
相关推荐
zquwei11 分钟前
SpringCloudGateway+Nacos注册与转发Netty+WebSocket
java·网络·分布式·后端·websocket·网络协议·spring
TT哇17 分钟前
*【每日一题 提高题】[蓝桥杯 2022 国 A] 选素数
java·算法·蓝桥杯
火烧屁屁啦39 分钟前
【JavaEE进阶】初始Spring Web MVC
java·spring·java-ee
飞飞-躺着更舒服43 分钟前
【QT】实现电子飞行显示器(改进版)
开发语言·qt
w_31234541 小时前
自定义一个maven骨架 | 最佳实践
java·maven·intellij-idea
岁岁岁平安1 小时前
spring学习(spring-DI(字符串或对象引用注入、集合注入)(XML配置))
java·学习·spring·依赖注入·集合注入·基本数据类型注入·引用数据类型注入
武昌库里写JAVA1 小时前
Java成长之路(一)--SpringBoot基础学习--SpringBoot代码测试
java·开发语言·spring boot·学习·课程设计
Q_19284999061 小时前
基于Spring Boot的九州美食城商户一体化系统
java·spring boot·后端
张国荣家的弟弟1 小时前
【Yonghong 企业日常问题 06】上传的文件不在白名单,修改allow.jar.digest属性添加允许上传的文件SH256值?
java·jar·bi
ZSYP-S2 小时前
Day 15:Spring 框架基础
java·开发语言·数据结构·后端·spring