目录
[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()); }