一、Json数组基础概述
Json数组是一组有序的值集合。每一个值被称为元素,数组中的元素可以是字符串、数字、bool值、对象或者是其他的数组。Json数组用中括号[]
包含,元素之间用逗号隔开。
下面是一个例子:
[
"Java",
123,
true,
{
"name": "Tom",
"age": 20
}
]
上面的例子包含了字符串、整数、布尔值和一个Json对象。
二、创建Java Json数组
Java中使用org.json
库来操作Json数组。创建Json数组非常简单,只需要使用JSONArray
类的构造方法即可。
JSONArray jsonArray = new JSONArray();
jsonArray.put("Java");
jsonArray.put(123);
jsonArray.put(true);
上述代码创建了一个空的Json数组,然后依次添加了一个字符串、一个整数和一个布尔值。
三、访问Java Json数组
Java Json数组的元素访问可以使用get()
或者opt()
方法。get()
方法将会抛出异常,但是opt()
方法在索引越界时不会抛出异常,而是返回一个空值。
JSONArray jsonArray = new JSONArray();
jsonArray.put("Java");
jsonArray.put(123);
jsonArray.put(true);
String strValue = jsonArray.getString(0); // 获取第一个元素的字符串值
int intValue = jsonArray.getInt(1); // 获取第二个元素的整型值
boolean boolValue = jsonArray.getBoolean(2); // 获取第三个元素的布尔值
四、遍历Java Json数组
Java Json数组的遍历可以使用for循环或者是迭代器来进行。下面是一个使用for循环来遍历Json数组的例子。
JSONArray jsonArray = new JSONArray();
jsonArray.put("Java");
jsonArray.put(123);
jsonArray.put(true);
for(int i = 0; i < jsonArray.length(); i++) {
Object obj = jsonArray.get(i);
System.out.println(obj.toString());
}
五、操作Java Json数组
Java Json数组支持的操作包括添加、删除、清空和判断是否包含某元素等。 (1)添加元素
JSONArray jsonArray = new JSONArray();
jsonArray.put("Java");
jsonArray.put(123);
jsonArray.put(true);
JSONObject jsonObject = new JSONObject();
jsonObject.put("name", "Tom");
jsonObject.put("age", 20);
jsonArray.put(jsonObject); // 添加Json对象元素
(2)删除元素
JSONArray jsonArray = new JSONArray();
jsonArray.put("Java");
jsonArray.put(123);
jsonArray.put(true);
jsonArray.remove(2); // 删除第三个元素,布尔值true
(3)清空数组
JSONArray jsonArray = new JSONArray();
jsonArray.put("Java");
jsonArray.put(123);
jsonArray.put(true);
jsonArray.clear(); // 清空数组中所有元素
(4)判断是否包含元素
JSONArray jsonArray = new JSONArray();
jsonArray.put("Java");
jsonArray.put(123);
jsonArray.put(true);
boolean contains = jsonArray.contains(true); // 判断数组中是否包含true元素
六、Java Json数组与Java对象的转换
Java对象可以转换成Json对象或者Json数组,同样的,Json对象和Json数组也可以转换成Java对象。 (1)Java对象转换成Json数组
List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("C++");
JSONArray jsonArray = new JSONArray(list); // 将list转换成Json数组
(2)Json对象转换成Java对象
String jsonString = "{\"name\":\"Tom\",\"age\":20}";
JSONObject jsonObject = new JSONObject(jsonString);
// 将Json对象转换成Java对象
String name = jsonObject.getString("name");
int age = jsonObject.getInt("age");
七、Java Json数组与Json字符串的互相转换
Java Json数组和Json字符串之间的转换非常简单,只需要调用对应的方法即可。 (1)Java Json数组转换成Json字符串
JSONArray jsonArray = new JSONArray();
jsonArray.put("Java");
jsonArray.put(123);
jsonArray.put(true);
String jsonString = jsonArray.toString(); // 将Json数组转换成Json字符串
(2)Json字符串转换成Java Json数组
String jsonString = "[\"Java\",123,true]";
JSONArray jsonArray = new JSONArray(jsonString); // 将Json字符串转换成Json数组
八、总结
本文对Java Json数组进行了深入的讲解,介绍了Json数组的基础概念、创建、访问、遍历、操作以及Json数组与Java对象、Json字符串之间的互相转换等方面的内容。希望能够对读者在实践中操作Json数组有所帮助。