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