概述
在 Java 中,我们可以使用多种库来解析 JSON,其中最流行的是 org.json
和 Jackson
。这两个库都提供了丰富的 API,使得解析 JSON 变得简单。本指南将分别介绍如何使用这两个库来解析 JSON Array。
使用 org.json 解析 JSON Array
org.json
是一个轻量级的 JSON 库,它可以用于解析 JSON 数据。以下是一个使用 org.json
解析 JSON Array 的示例:
import org.json.JSONArray;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.List;
public class ParseJsonArrayExample {
public static void main(String[] args) {
String jsonString = "[{\"name\":\"Alice\",\"age\":30},{\"name\":\"Bob\",\"age\":25}]";
JSONArray jsonArray = new JSONArray(jsonString);
List<Person> persons = new ArrayList<>();
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
String name = jsonObject.getString("name");
int age = jsonObject.getInt("age");
persons.add(new Person(name, age));
}
System.out.println(persons); // 输出: [Person{name='Alice', age=30}, Person{name='Bob', age=25}]
}
}
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
在这个例子中,我们首先创建了一个包含两个对象的 JSON Array 字符串。然后,我们使用 JSONArray
类解析这个字符串,并通过循环遍历每个元素。对于每个元素,我们使用 getJSONObject
方法获取 JSONObject
,然后从 JSONObject
中提取属性并创建一个 Person
对象。
使用 Jackson 解析 JSON Array
Jackson
是一个功能强大的 JSON 库,它可以用于解析和生成 JSON 数据。以下是一个使用 Jackson
解析 JSON Array 的示例:
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.TypeFactory;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class ParseJsonArrayWithJacksonExample {
public static void main(String[] args) {
String jsonString = "[{\"name\":\"Alice\",\"age\":30},{\"name\":\"Bob\",\"age\":25}]";
ObjectMapper objectMapper = new ObjectMapper();
try {
List<Person> persons = objectMapper.readValue(jsonString, TypeFactory.defaultInstance().constructCollectionType(List.class, Person.class));
System.out.println(persons); // 输出: [Person{name='Alice', age=30}, Person{name='Bob', age=25}]
} catch (IOException e) {
e.printStackTrace();
}
}
}
class Person {
private String name;
private int age;
// Getters and setters...
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
在这个例子中,我们使用了 ObjectMapper
类的 readValue
方法来解析 JSON Array 字符串。我们需要指定目标类型,这可以通过 TypeFactory
类来构造。然后,readValue
方法会将 JSON Array 转换为 ArrayList<Person>
。
总结
在 Java 中解析 JSON Array 可以使用 org.json
或 Jackson
库。这两个库都提供了丰富的 API,可以简化 JSON 的解析过程。理解这些库的使用可以帮助我们更有效地处理 JSON 数据,并在 Java 应用程序中利用这些数据。