怎么用fastjson将JSONARRAY对象转为list
时间: 2023-05-18 15:06:11 浏览: 152
可以使用以下代码将JSONARRAY对象转为list:
```
JSONArray jsonArray = JSON.parseArray(jsonStr);
List<Object> list = jsonArray.toJavaList(Object.class);
```
其中,jsonStr是JSONARRAY对象的字符串表示。需要注意的是,需要引入fastjson的依赖包。
相关问题
com.alibaba.fastjson.JSONArray 如何转换Object
`com.alibaba.fastjson.JSONArray` 是阿里巴巴 Fastjson 库中的一个数据结构,它是一个动态数组,主要用于序列化和反序列化 JSON 数据。如果你想将 `JSONArray` 转换为普通的 Java 对象(如 List 或者自定义的对象),你可以按照以下步骤操作:
1. 首先,确保你要处理的 `JSONArray` 中的元素可以对应到你想要的目标对象的属性。Fastjson 通常支持自动反序列化,如果目标对象有相应的字段,它会尝试将 JSON 数据映射过去。
2. 使用 `JSONArray.toJSONString(Object obj)` 或者 `JSONArray.toJavaList(Class<T> clazz)` 方法。`toJSONString` 可以直接将整个数组转换成 JSON 字符串,然后解析成 Object。`toJavaList` 则会将 JSONArray 转换成指定类型的 List。
```java
// 示例:假设有一个自定义的 User 类
Class<User> clazz = User.class;
JSONArray jsonArray = ...; // 你的 JSONArray
// 如果想直接转为字符串
String jsonString = jsonArray.toJSONString();
// 或者转为 User 列表
List<User> userList = jsonArray.toJavaList(clazz);
```
3. 如果需要对 JSON 内容进行更复杂的解析,比如自定义转换规则,你可以遍历 `JSONArray` 的每个元素,并创建对应的实例并填充数据。
```java
List<User> userList = new ArrayList<>();
for (Object item : jsonArray) {
User user = clazz.newInstance();
// 根据item的内容设置user对象的属性
user.setName(((JSONObject) item).getString("name"));
// 更多属性...
userList.add(user);
}
```
fastjson将json转为list
使用fastjson将json转为list的步骤如下:
1. 导入fastjson的jar包。
2. 创建一个json字符串。
3. 使用fastjson的parseArray方法将json字符串转为list。
示例代码如下:
```
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
public class Test {
public static void main(String[] args) {
String jsonStr = "[{\"name\":\"张三\",\"age\":18},{\"name\":\"李四\",\"age\":20}]";
JSONArray jsonArray = JSON.parseArray(jsonStr);
System.out.println(jsonArray);
}
}
```
输出结果为:
```
[{"name":"张三","age":18},{"name":"李四","age":20}]
```
其中,jsonStr是一个json字符串,包含了两个对象。使用JSON.parseArray方法将json字符串转为JSONArray对象,再通过JSONArray对象获取list。
阅读全文