在Java中解析包含数组的JSON对象通常需要使用第三方库,如Gson、Jackson或Fastjson。以下是使用Gson库解析包含数组的JSON对象的示例代码:
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.List;
public class JsonArrayExample {
public static void main(String[] args) {
String json = "[{\"name\": \"Alice\", \"age\": 25}, {\"name\": \"Bob\", \"age\": 30}]";
// 创建一个Gson对象
Gson gson = new Gson();
// 使用TypeToken来指定解析的类型
Type listType = new TypeToken
>() {}.getType();
// 解析JSON字符串为List
对象 List
persons = gson.fromJson(json, listType); // 打印解析后的对象
for (Person person : persons) {
System.out.println("Name: " + person.getName() + ", Age: " + person.getAge());
}
}
}
// 定义一个简单的Java类来表示Person
class Person {
private String name;
private int age;
// Getter 和 Setter 方法
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;
}
}
在上面的代码中,我们首先创建了一个包含JSON数组的字符串`json`,然后使用Gson库的`fromJson`方法将JSON字符串解析为`List
如果你需要使用其他库,比如Jackson或Fastjson,步骤类似,只是需要导入相应的库并调整解析代码。例如,使用Fastjson的解析方式如下:
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
public class FastjsonExample {
public static void main(String[] args) {
String json = "{\"data\":[{\"school_name\":\"西北农林科技大学\",\"school_id\":8},{\"school_name\":\"西北大学\",\"school_id\":6},{\"school_name\":\"西北工业大学\",\"school_id\":7},{\"school_name\":\"陕西师范大学\",\"school_id\":11}],\"msg\":\"列表获取成功\",\"status\":0}";
// 解析JSON字符串为JSONObject对象
JSONObject jsonObj = JSON.parseObject(json);
// 获取JSON对象中的数组
JSONArray jsonArr = jsonObj.getJSONArray("data");
// 遍历数组并打印每个元素
for (int i = 0; i < jsonArr.size(); i++) {
JSONObject school = jsonArr.getJSONObject(i);
System.out.println("School Name: " + school.getString("school_name") + ", School ID: " + school.getInt("school_id"));
}
}
}
在这个例子中,我们使用Fastjson的`parseObject`方法将JSON字符串解析为`JSONObject`对象,然后从中获取名为`data`的数组,并遍历打印每个元素。
请根据你的具体需求选择合适的库和解析方法。