java中String类型的JSON数据如何转化为map数组
时间: 2024-09-15 20:11:30 浏览: 48
Java读取json文件,并转化为map取值
在Java中,将String类型的JSON数据转换为Map数组通常需要借助JSON处理库,如常用的`org.json`库或者`com.alibaba.fastjson`等。以下是使用`org.json`库实现转换的一个示例:
```java
import org.json.JSONArray;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class JsonToMapArrayConverter {
public static List<Map<String, Object>> convertJsonToMapArray(String jsonStr) throws Exception {
JSONArray jsonArray = new JSONArray(jsonStr); // 将JSON格式的字符串转换成JSONArray对象
List<Map<String, Object>> mapList = new ArrayList<>();
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i); // 遍历JSONArray,每个元素转换为JSONObject
Map<String, Object> map = new HashMap<>();
// 遍历JSONObject的keySet,将键值对添加到Map中
jsonObject.keys().forEachRemaining(key -> map.put(key, jsonObject.get(key)));
mapList.add(map);
}
return mapList;
}
public static void main(String[] args) {
String jsonStr = "[{\"name\":\"Alice\",\"age\":25},{\"name\":\"Bob\",\"age\":30}]";
try {
List<Map<String, Object>> mapArray = convertJsonToMapArray(jsonStr);
// 处理转换后的mapArray
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
在上述代码中,首先导入了必要的`org.json`库中的类,然后通过`JSONArray`解析了输入的JSON格式字符串。之后,遍历`JSONArray`中的每一个`JSONObject`,并将其转换为`Map<String, Object>`类型,最后将所有的Map对象存入到一个List中并返回。
阅读全文