在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对象 Listpersons = gson.fromJson(json, listType); // 打印解析后的对象for (Person person : persons) {System.out.println("Name: " + person.getName() + ", Age: " + person.getAge());}}}// 定义一个简单的Java类来表示Personclass 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`的数组,并遍历打印每个元素。
请根据你的具体需求选择合适的库和解析方法。

