1. 什么是JSON数组
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于客户端和服务器之间的数据传输。JSON数组是一种存储数据的方式,由一组有序的值组成,并使用方括号[]表示。
JSON数组的示例:
[
{"name": "apple", "price": 2.0},
{"name": "banana", "price": 1.5},
{"name": "pear", "price": 2.5}
]
在上面的例子中,JSON数组包含三个元素,每个元素是一个JSON对象,对象包含两个属性:name和price。
2. JSON库
Java中有很多JSON库,其中比较常用的有以下几种:
JSON-lib
Fastjson
Gson
Jackson
本文将使用Gson作为JSON库进行解析和遍历JSON数组。
3. 解析JSON数组
使用Gson解析JSON数组的代码如下:
String json = "[{\"name\": \"apple\", \"price\": 2.0}, {\"name\": \"banana\", \"price\": 1.5}, {\"name\": \"pear\", \"price\": 2.5}]";
JsonArray jsonArray = JsonParser.parseString(json).getAsJsonArray();
上面的代码首先创建了一个JSON数组的字符串表示,然后使用Gson的JsonParser类将其解析为一个JsonArray对象。
需要注意的是,如果JSON数据是存储在文件中的,可以使用Gson的JsonReader类从文件中读取JSON数据并解析为JsonArray对象。示例代码如下:
try (JsonReader reader = new JsonReader(new FileReader("data.json"))) {
JsonArray jsonArray = JsonParser.parseReader(reader).getAsJsonArray();
} catch (IOException e) {
e.printStackTrace();
}
4. 遍历JSON数组
4.1 for循环遍历
使用for循环遍历JSON数组的代码如下:
for (JsonElement element : jsonArray) {
JsonObject object = element.getAsJsonObject();
String name = object.get("name").getAsString();
double price = object.get("price").getAsDouble();
System.out.println(name + " - " + price);
}
上面的代码首先通过JsonElement的for-each循环来遍历JsonArray的每个元素,然后通过getAsJsonObject()方法将元素转换为JsonObject对象,最后通过get()方法获取对象的属性值。
4.2 迭代器遍历
使用迭代器遍历JSON数组的代码如下:
Iterator iterator = jsonArray.iterator();
while (iterator.hasNext()) {
JsonObject object = iterator.next().getAsJsonObject();
String name = object.get("name").getAsString();
double price = object.get("price").getAsDouble();
System.out.println(name + " - " + price);
}
与for循环遍历类似,使用迭代器遍历JSON数组也需要将JsonArray中的每个元素转换为JsonObject对象。
4.3 Lambda表达式遍历
使用Lambda表达式遍历JSON数组的代码如下:
jsonArray.forEach(element -> {
JsonObject object = element.getAsJsonObject();
String name = object.get("name").getAsString();
double price = object.get("price").getAsDouble();
System.out.println(name + " - " + price);
});
上面的代码利用了Java 8提供的forEach()方法和Lambda表达式,代码简洁优美。
5. 总结
本文介绍了JSON数组的概念以及使用Gson库解析和遍历JSON数组的方法,并给出了使用for循环、迭代器和Lambda表达式三种方法遍历JSON数组的示例代码。希望本文能够帮助你掌握JSON数组处理技巧。