json数组转为map
时间: 2024-08-22 17:03:03 浏览: 51
JSON数组转换成Map通常发生在需要将一组键值对结构化存储的情况,比如从API获取的数据。例如,假设有一个JSON数组如下:
```json
[
{"name": "John", "age": 30},
{"name": "Jane", "age": 25}
]
```
要将其转换为Java中的Map,可以使用`org.json.JSONObject`(如果使用的是JSONObject库)或`com.fasterxml.jackson.databind.ObjectMapper`(Jackson库)等工具。这里是一个简单的示例:
```java
import org.json.JSONArray;
import org.json.JSONObject;
JSONArray jsonArray = new JSONArray(jsonString); // jsonString是你实际接收到的JSON字符串
Map<String, Object> mapList = new HashMap<>();
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
mapList.put(jsonObject.getString("name"), jsonObject.getInt("age"));
}
// 现在mapList就是一个包含两个元素的Map,如 { "John": 30, "Jane": 25 }
```
如果你使用的是Jackson库,可以这样做:
```java
import com.fasterxml.jackson.databind.ObjectMapper;
String jsonString = ...;
ObjectMapper mapper = new ObjectMapper();
JSONArray jsonArray = mapper.readValue(jsonString, JSONArray.class);
Map<String, Integer> mapList = jsonArray.stream()
.map(jsonObject -> jsonObject.toMap())
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
```
阅读全文