JSONObject与JSONArray的使用
封面图
•
2025-09-22
•
Java
201
0
0
0
在 Java 中,`JSONObject` 和 `JSONArray` 是用于处理 JSON 数据的两个常用类,它们通常来自 **org.json** 库(如 [org.json](https://mvnrepository.com/artifact/org.json/json))。这两个类可以帮助你解析、生成和操作 JSON 数据。 --- ## 一、基本概念 ### 1. **JSONObject** - 表示一个 JSON 对象(键值对集合)。 - 格式:`{"key": "value", "name": "John"}` ### 2. **JSONArray** - 表示一个 JSON 数组(元素列表)。 - 格式:`["apple", "banana", "orange"]` --- ## 二、使用示例 ### 1. 创建 JSONObject ```java import org.json.JSONObject; public class Example { public static void main(String[] args) { // 创建一个空的 JSONObject JSONObject obj = new JSONObject(); // 添加键值对 obj.put("name", "John"); obj.put("age", 30); obj.put("isStudent", false); // 输出结果 System.out.println(obj.toString()); // 输出: {"name":"John","age":30,"isStudent":false} } } ``` ### 2. 创建 JSONArray ```java import org.json.JSONArray; public class Example { public static void main(String[] args) { // 创建一个空的 JSONArray JSONArray arr = new JSONArray(); // 添加元素 arr.put("apple"); arr.put("banana"); arr.put(123); arr.put(true); // 输出结果 System.out.println(arr.toString()); // 输出: ["apple","banana",123,true] } } ``` ### 3. 将 JSONArray 放入 JSONObject ```java import org.json.JSONObject; import org.json.JSONArray; public class Example { public static void main(String[] args) { JSONObject obj = new JSONObject(); JSONArray arr = new JSONArray(); arr.put("apple"); arr.put("banana"); obj.put("fruits", arr); obj.put("name", "John"); System.out.println(obj.toString()); // 输出: {"name":"John","fruits":["apple","banana"]} } } ``` ### 4. 解析 JSON 字符串 ```java import org.json.JSONObject; import org.json.JSONArray; public class Example { public static void main(String[] args) { String jsonStr = "{\"name\":\"John\",\"age\":30,\"hobbies\":[\"reading\",\"gaming\"]}"; JSONObject obj = new JSONObject(jsonStr); System.out.println(obj.getString("name")); // John System.out.println(obj.getInt("age")); // 30 JSONArray hobbies = obj.getJSONArray("hobbies"); for (int i = 0; i < hobbies.length(); i++) { System.out.println(hobbies.getString(i)); // reading, gaming } } } ``` --- ## 三、常见方法总结 | 方法 | 说明 | |------|------| | `put(String key, Object value)` | 向对象中添加键值对 | | `get(String key)` | 获取指定键的值 | | `getString(String key)` | 获取字符串类型的值 | | `getInt(String key)` | 获取整数类型的值 | | `getJSONArray(String key)` | 获取 JSON 数组 | | `getJSONObject(String key)` | 获取嵌套的 JSON 对象 | | `length()` | 获取对象或数组的长度 | | `toString()` | 转换为 JSON 字符串 | --- ## 四、注意事项 - 使用前需要引入 `org.json` 库(Maven 或手动导入): ```xml <dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20231013</version> </dependency> ``` - 如果 JSON 结构复杂(嵌套多层),建议使用更强大的库如 **Jackson** 或 **Gson**。 --- ## 五、对比其他库(可选) | 库 | 特点 | |----|------| | **org.json** | 简单易用,适合轻量级项目 | | **Jackson** | 功能强大,性能好,适合大型项目 | | **Gson** | 易于使用,支持序列化/反序列化 Java 对象 | --- 如果你有具体的 JSON 示例或者想了解如何处理嵌套结构,可以告诉我,我可以帮你写对应的代码。
上一篇:
java 数字转换成字符串
下一篇:
AsyncTask的参数介绍
标题录入,一次不能超过6条
返回顶部
留言
留言
评论