【发布时间】:2021-07-31 11:59:47
【问题描述】:
我收到以下格式的休息回复。
{
"query_result": {
"status": "SUCCESS",
"message": "Results Found",
"results": [
{
"key": "123"
},
{
"key": "465"
}
]
}
}
从这个响应中,我想从键中创建一个字符串列表。 因此希望得到如下列表结果:
["123", "456"]
尝试按如下方式生成输出,但卡在以下代码块中的映射步骤。
public Optional<List<String>> get(HttpEntity<Request> request){
ResponseEntity<Response> response = getResponse(request); // this response holds above json data
return Optional.ofNullable(response)
.map(ResponseEntity::getBody)
.map(Response::getQueryResult)
.map(QueryResult::getResults)
.filter(CollectionUtils::isNotEmpty)
.map(results -> results.) // Stuck here. results here is the list of results shown in above json.
}
我无法从这里提取所有键的值。 我最终不得不指出索引如下,这是行不通的,因为我想要所有的键。
.map(results -> results.get(0))
尝试考虑使用迭代器,但最终只会捕获第一个键。
.filter(CollectionUtils::isNotEmpty)
.map(List::iterator)
.map(Iterator::next)
.map(result -> result.getKey())
我能在这方面寻求帮助吗?谢谢。
【问题讨论】:
标签: java java-8 java-stream