1. JSON数组概述
JSON数组是一组以JSON格式存储的数据元素,其中的元素都按照特定的顺序进行排列,每个元素都是一个JSON对象。在Java中,我们可以使用JSONArray类来操作JSON数组,使用其提供的方法来进行增删改查等操作。
2. JSON数组的创建
2.1 直接创建
我们可以直接创建一个JSON数组,其中可以包含任意数量的JSON对象,如下所示:
JSONArray jsonArray = new JSONArray();
JSONObject jsonObject1 = new JSONObject();
jsonObject1.put("name", "张三");
jsonObject1.put("age", 18);
jsonArray.put(jsonObject1);
JSONObject jsonObject2 = new JSONObject();
jsonObject2.put("name", "李四");
jsonObject2.put("age", 20);
jsonArray.put(jsonObject2);
System.out.println(jsonArray.toString());
以上代码创建了一个包含两个JSON对象的JSON数组,并将其转换成字符串进行输出。运行结果如下:
[{"name":"张三","age":18},{"name":"李四","age":20}]
可以看到,我们成功地创建了一个JSON数组,并将其中的两个JSON对象进行了存储。
2.2 通过解析JSON字符串创建
我们也可以通过解析JSON字符串来创建一个JSON数组。假设我们有如下JSON字符串:
String jsonStr = "[{'name':'张三','age':18},{'name':'李四','age':20}]";
我们可以使用JSONArray类的构造方法来进行解析,并生成JSON数组对象,如下所示:
JSONArray jsonArray = new JSONArray(jsonStr);
System.out.println(jsonArray);
运行以上代码,将输出如下结果:
[{"name":"张三","age":18},{"name":"李四","age":20}]
3. JSON数组的增加操作
在JSON数组中,我们可以很方便地添加新的元素,只需要使用JSONArray类的put()方法即可将新元素添加到数组末尾,如下所示:
JSONArray jsonArray = new JSONArray();
JSONObject jsonObject = new JSONObject();
jsonObject.put("name", "张三");
jsonObject.put("age", 18);
jsonArray.put(jsonObject); // 添加元素
System.out.println(jsonArray.toString());
以上代码将一个新的JSON对象添加到了空的JSON数组中,并将其转换成字符串进行输出。运行结果如下:
[{"name":"张三","age":18}]
4. JSON数组的删除操作
JSON数组中的元素删除比较简单,只需要使用JSONArray类的remove()方法即可。该方法可以根据元素的下标或者元素本身进行删除操作,例如:
JSONArray jsonArray = new JSONArray();
JSONObject jsonObject1 = new JSONObject();
jsonObject1.put("name", "张三");
jsonObject1.put("age", 18);
jsonArray.put(jsonObject1);
JSONObject jsonObject2 = new JSONObject();
jsonObject2.put("name", "李四");
jsonObject2.put("age", 20);
jsonArray.put(jsonObject2);
jsonArray.remove(0); // 根据下标删除
System.out.println(jsonArray.toString());
以上代码将JSON数组中下标为0的元素(即第一个元素)进行了删除操作,并将其转换成字符串进行输出。运行结果如下:
[{"name":"李四","age":20}]
5. JSON数组的更新操作
JSON数组中元素的更新操作也比较简单,只需要使用JSONArray类的put()方法即可。该方法可以根据元素的下标或者元素本身进行更新操作,例如:
JSONArray jsonArray = new JSONArray();
JSONObject jsonObject1 = new JSONObject();
jsonObject1.put("name", "张三");
jsonObject1.put("age", 18);
jsonArray.put(jsonObject1);
JSONObject jsonObject2 = new JSONObject();
jsonObject2.put("name", "李四");
jsonObject2.put("age", 20);
jsonArray.put(jsonObject2);
jsonObject1.put("age", 28); // 根据元素本身更新
jsonArray.put(0, jsonObject1); // 根据下标更新
System.out.println(jsonArray.toString());
以上代码将JSON数组中下标为0的元素(即第一个元素)的age属性更新为28,并将整个JSON对象插入到JSON数组中下标为0的位置进行更新操作,最后将整个JSON数组转换成字符串进行输出。运行结果如下:
[{"name":"张三","age":28},{"name":"李四","age":20}]
6. JSON数组的查询操作
JSON数组的查询操作也比较简单,我们可以根据元素的下标或者元素本身进行查询操作,如下所示:
JSONArray jsonArray = new JSONArray();
JSONObject jsonObject1 = new JSONObject();
jsonObject1.put("name", "张三");
jsonObject1.put("age", 18);
jsonArray.put(jsonObject1);
JSONObject jsonObject2 = new JSONObject();
jsonObject2.put("name", "李四");
jsonObject2.put("age", 20);
jsonArray.put(jsonObject2);
JSONObject jsonObject = jsonArray.getJSONObject(0); // 根据下标查询
System.out.println(jsonObject.toString());
int age = jsonArray.getJSONObject(1).getInt("age"); // 根据元素本身查询
System.out.println(age);
以上代码分别通过下标和元素本身进行了查询操作,并将查询结果输出。运行结果如下:
{"name":"张三","age":18}
20
7. 总结
通过本篇文章的学习,我们了解了JSON数组的基本概念和操作技巧,并且通过实例代码进行了相关操作的演示。在实际开发中,我们需要灵活运用JSON数组的增删改查等操作,并加以合理的设计和应用。