JSONArray反序列化
时间: 2023-07-18 12:24:52 浏览: 129
使用 Java 中的 JSON 库,如 Jackson、Gson 等,可以将 JSON 字符串反序列化为 Java 对象。
以 JSONArray 反序列化为例,假设我们有以下 JSON 字符串:
```
[
{
"name": "Alice",
"age": 20
},
{
"name": "Bob",
"age": 25
}
]
```
我们可以使用以下代码将其反序列化为一个包含两个 Person 对象的 List:
```java
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.JsonNode;
// 定义 Person 类
public class Person {
private String name;
private int age;
public Person() {}
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public int getAge() { return age; }
public void setAge(int age) { this.age = age; }
}
// 反序列化 JSONArray
String jsonStr = "[{\"name\":\"Alice\",\"age\":20},{\"name\":\"Bob\",\"age\":25}]";
ObjectMapper mapper = new ObjectMapper();
List<Person> persons = new ArrayList<>();
JsonNode root = mapper.readTree(jsonStr);
if (root.isArray()) {
for (JsonNode node : root) {
Person person = mapper.treeToValue(node, Person.class);
persons.add(person);
}
}
```
在上述代码中,我们使用 ObjectMapper 对象将 JSON 字符串转换为 JsonNode 对象,然后遍历 JsonNode 数组并使用 treeToValue() 方法将每个 JsonNode 转换为 Person 对象。最终我们得到了包含两个 Person 对象的 List。
阅读全文