Hutool糊涂包JSON相关方法汇总

目录

1. JSON 对象 (JSONObject) 的创建

2. 向 JSONObject 添加键值对

3. 从 JSONObject 获取值

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

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

6. JSON 数组 (JSONArray) 的使用

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

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

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

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

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

12. 深度克隆 JSON 对象

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

14. 将 JSON 对象转换为 JSONArray

15. 从 JSONArray 中提取 JSONObject

16. 将 JSONArray 转换为 List


1. JSON 对象 (JSONObject) 的创建

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

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

 

2. 向 JSONObject 添加键值对

    @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 获取值

    @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 对象与字符串之间的转换

    @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)之间的转换

@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) 的使用

    @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 之间的转换

    @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 对象中是否包含某个键

    @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 对象中的键值对

    @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 之间的转换

    @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 数组之间的转换

    @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 对象

    @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 之间的转换

    @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

    @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

    @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

    @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());
    }

 

  • 11
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值