jsonarray转map
时间: 2023-11-14 18:10:10 浏览: 103
将JSONArray转换为Map的过程可以使用Java 8的Stream API来实现。下面是三种不同的实现方式,分别使用了toMap()和forEach()方法:
1. 第一种方式:
```
JSONArray jsonArray = new JSONArray(); //填充初始数据,此处过程省略
List<JSONObject> jsonObjectList = jsonArray.toJavaList(JSONObject.class);
Map<Integer, String> map = jsonObjectList.stream()
.filter(Objects::nonNull)
.collect(Collectors.toMap(item -> item.getInteger("flagType"), item -> item.getString("flagIcon")));
```
2. 第二种方式:
```
JSONArray jsonArray = new JSONArray(); //填充初始数据,此处过程省略
Map<Integer, String> map = jsonArray.stream()
.filter(Objects::nonNull)
.collect(Collectors.toMap(
object -> {
JSONObject item = (JSONObject) object;
return item.getInteger("flagType");
},
object -> {
JSONObject item = (JSONObject) object;
return item.getString("flagIcon");
}
));
```
3. 第三种方式:
```
JSONArray jsonArray = new JSONArray(); //填充初始数据,此处过程省略
Map<Integer, String> flagIconMap = new HashMap<>();
if (jsonArray != null && !jsonArray.isEmpty()) {
jsonArray.forEach(object -> {
if (object == null) {
return;
}
JSONObject jsonObject = (JSONObject) object;
if (jsonObject.getInteger("flagType") == null) {
return;
}
flagIconMap.put(jsonObject.getInteger("flagType"),jsonObject.getString("flagIcon"));
});
}
```
阅读全文