java 解析json字符串 alibaba getJSONArray
时间: 2023-10-27 07:04:34 浏览: 82
阿里巴巴的 FastJSON 库提供了 `JSONArray` 类型,可以用于解析 JSON 数组。以下是如何使用 `JSONArray` 类型解析 JSON 数组:
```java
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
public class JsonParser {
public static void main(String[] args) {
String jsonString = "[{\"name\":\"John\", \"age\":30}, {\"name\":\"Mary\", \"age\":25}]";
JSONArray jsonArray = JSON.parseArray(jsonString);
for (int i = 0; i < jsonArray.size(); i++) {
String name = jsonArray.getJSONObject(i).getString("name");
int age = jsonArray.getJSONObject(i).getIntValue("age");
System.out.println("Name: " + name);
System.out.println("Age: " + age);
}
}
}
```
在上面的代码中,我们定义了一个 JSON 数组,使用 `parseArray` 方法将其解析为 `JSONArray` 对象。然后,使用 `getJSONObject` 方法获取数组中的每一个元素,再通过该元素的键来获取对应的值。
需要注意的是,在获取 JSON 数组中的元素时,要使用 `getJSONObject` 方法获取 JSONObject 对象,再通过该对象来获取对应的值。如果直接使用 `getString` 或 `getIntValue` 方法,会抛出异常。
如果 JSON 字符串中有嵌套的 JSON 数组,可以使用 `getJSONArray` 方法来获取:
```java
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
public class JsonParser {
public static void main(String[] args) {
String jsonString = "{\"name\":\"John\", \"age\":30, \"friends\":[{\"name\":\"Mary\", \"age\":25}, {\"name\":\"Tom\", \"age\":35}]}";
JSONObject jsonObject = JSON.parseObject(jsonString);
JSONArray friends = jsonObject.getJSONArray("friends");
for (int i = 0; i < friends.size(); i++) {
String name = friends.getJSONObject(i).getString("name");
int age = friends.getJSONObject(i).getIntValue("age");
System.out.println("Name: " + name);
System.out.println("Age: " + age);
}
}
}
```
在上面的代码中,我们定义了一个 JSON 字符串,其中有一个名为 `friends` 的 JSON 数组。使用 `getJSONArray` 方法获取该数组,然后可以按照上面的方法访问数组中的元素。