在使用JSON Parser解析我的json文件之后,我得到了以下Java版本的列表:
List< List<HashMap<String,String>>> fields = jsonContext.read(jsonPath);
该列表中的每个元素本身都是来自以下json struct 的HashMap和结果的列表:
[
{
"value": "such",
"name": "yname"
},
{
"value": "Suchwort",
"name": "yvbeds"
},
{
"value": "",
"name": "yfix"
},
{
"value": "such",
"name": "yzielfeld"
}
],
[
{
"value": "ftext",
"name": "yname"
},
{
"value": "Freitext 1",
"name": "yvbeds"
},
{
"value": "",
"name": "yfix"
},
{
"value": "ftext",
"name": "yzielfeld"
}
],
该json struct 创建了四个映射,每个映射都有两个键值对.我想把这四张 map 转换成一张 map .我在没有使用流的情况下实现了这一点,如下所示:
List<HashMap<String,String>> newList = new ArrayList<>();
for(int i=0;i< fields.size();i++) {
HashMap<String,String> singleMap = new HashMap<>();
List<HashMap<String,String>> listItem = fields.get(i);
for(int j=0;j<listItem.size();j++) {
HashMap<String,String> fieldMap = listItem.get(j);
singleMap.put(fieldMap.get("name"),fieldMap.get("value"));
}
newList.add(singleMap);
}
我try 了以下流方法,但在收集到 map 后,我需要再次收集以列出,但只有 map 选项:
List<HashMap<String,String>> newList = fields.stream()
.flatMap(List::stream)
.collect(Collectors.toMap(value->value.get("name"),value->value.get("value")))
.