json转化成map
时间: 2023-11-08 15:48:18 浏览: 94
要将JSON转换为Map,有几种不同的方法可以实现。
第一种方法是使用JSONArray类,首先确保你已经将JSON数据填充到JSONArray对象中。然后,你可以使用以下代码将其转换为Map:
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")));
第二种方法是仍然使用JSONArray类,首先也要确保你已经将JSON数据填充到JSONArray对象中。然后,你可以使用以下代码将其转换为Map:
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");
}
));
第三种方法是使用JSONObject类和JSONArray类的组合。在这种方法中,你同样需要先将JSON数据填充到JSONArray对象中。然后,你可以使用以下代码将其转换为Map:
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"));
});
}
这些方法中的每一种都可以将JSON转换为Map,具体使用哪种方法取决于你的需求和环境。
阅读全文