((JSONArray) JsonUtils.parseStringToJsonObject(response.getResponseBody()).get("firstArray")).stream()
.map(s->((JSONArray) s).get(1).toString()).collect(Collectors.toList())
为什么此代码段会返回一个Object而不是List?
(响应类型为IHttpResponse<String>
)
答案 0 :(得分:0)
以下代码应该有效
初始化JSONArray的示例代码
JSONArray jsonArray =new JSONArray();
JSONObject j1 = new JSONObject();
j1.put ("key", "Stack");
JSONObject j2 = new JSONObject();
j2.put ("key", "Overflow");
jsonArray.add(j1);
jsonArray.add(j2);
将JSONArray转换为List。您的代码中存在几个问题。第一个是,你在map函数中使用了JSONArray,它应该是JSONObject。第二个是map,返回Stream,我们需要将它强制转换为Stream<String>
List<String> output = arrayToStream(jsonArray)
.map(JSONObject.class::cast)
.map(s -> s.get("key").toString())
.collect(Collectors.toList());
将JSONArray转换为Stream<Object>
private static Stream<Object> arrayToStream(JSONArray array) {
return StreamSupport.stream(array.spliterator(), false);
}