[英]Is there any way to get list of values from HashMap contains of ArrayList of HashMaps?
我想从我从第三方 API 得到的响应中获取数据传输对象列表。 第三方API的响应结构如下:
Map<String,Object>
{
{
String -> ArrayList{
<Key,Value(DTO)>,
<Key,Value(DTO)>,
<Key,Value(DTO)>,
...
}
},
{
String -> Hashmap
}
}
响应类型: Map(String,Object)
我有两个键值对。 1(String,ArrayList (HashMap(s)...)), 2(String,HashMap)
现在我想要ArrayList的所有HashMap的值列表。
我希望列表为:
List<DTO>{
{
"key":"value",
"key":"value"
},
{
"key":"value",
"key":"value",
"key":"value",
"key":"value"
}
}
来自api的示例响应:
{ "one": [ 0 : { "id":"435453ty5g8437t5g734tr", "name":"name1", "address":"add", "field":"new field" }, 1: { "id":"4fr74g8fg48346rt83486tf", "name":"name2", "address":"add1", "field":"new field22" } ],
"meta": { "current_page":1, "records_per_page":20, "total_records":null } }
我如何需要:
[ { "id":"435453ty5g8437t5g734tr", "name":"name1", "address":"add", "field":"new field" },
{ "id":"4fr74g8fg48346rt83486tf", "name":"name2", "address":"add1", "field":"new field22" } ]
你可以 :
List
的条目Object
映射到List<Map<String, DTO>>
flatMap
将所有地图放在同一个流中这是未经检查的版本,用于List
的泛型类型
List<Map<String, DTO>> result =
content.values().stream()
.filter(value -> value instanceof List)
.map(value -> (List<Map<String, DTO>>) value)
.flatMap(List::stream)
.collect(Collectors.toList());
System.out.println(result);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.