JAVA中如何解析和遍历JSON数组?掌握JSON数组处理技巧。

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数组处理技巧。

后端开发标签