Поток Java не распознает тип
((JSONArray) JsonUtils.parseStringToJsonObject(response.getResponseBody()).get("firstArray")).stream()
.map(s->((JSONArray) s).get(1).toString()).collect(Collectors.toList())
Почему этот фрагмент кода возвращает объект, а не список?
(тип ответа IHttpResponse<String>
)
1 ответ
Следующий код должен работать
Пример кода для инициализации 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. В вашем коде было несколько проблем. Во-первых, вы использовали JSONArray внутри функции карты, и это должен быть JSONObject . Во-вторых, карта возвращает Stream, и нам нужно ввести его в Stream<String>
List<String> output = arrayToStream(jsonArray)
.map(JSONObject.class::cast)
.map(s -> s.get("key").toString())
.collect(Collectors.toList());
Util метод для преобразования JSONArray в Stream<Object>
private static Stream<Object> arrayToStream(JSONArray array) {
return StreamSupport.stream(array.spliterator(), false);
}