fastjson转map数组
时间: 2024-09-26 08:15:45 浏览: 53
Fastjson是一个由阿里巴巴开源的Java语言编写的高性能功能完备的JSON库,它支持将JSON字符串转换成Java对象,包括Map和数组等数据结构。如果你想要将Fastjson解析后的结果转换为Map数组,可以按照以下步骤操作:
1. 首先,你需要通过`JSONObject`或`JSONArray`从JSON字符串中获取到对应的映射对象或数组。
```java
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.JSONArray;
String jsonString = ...; // JSON字符串
JSONObject jsonObject = JSONObject.parseObject(jsonString);
JSONArray jsonArray = JSONArray.parseArray(jsonString);
```
2. 对于`JSONObject`,你可以通过遍历其键值对并将其添加到一个新的`List<Map<String, Object>>`中,然后将这个列表转换为`Map[]`数组:
```java
List<Map<String, Object>> mapList = new ArrayList<>();
for (Object entry : jsonObject.entrySet()) {
Map<String, Object> map = (Map<String, Object>) entry;
mapList.add(map);
}
Map[] mapArray = mapList.toArray(new Map[0]);
```
3. 对于`JSONArray`,每个元素已经是`JSONObject`或`JSONArray`类型,可以直接处理:
```java
List<Object> arrayList = jsonArray.toList(); // 将JSONArray转换为ArrayList
// 现在你可以直接操作arrayList,例如:
Map[] mapArray = arrayList.stream()
.filter(map -> map instanceof Map) // 过滤出Map对象
.toArray(Map[]::new);
```
阅读全文