Будьте уверены - Json Extract
Я получаю ответ в следующей структуре:
[{
"builds": [{
"description": "JP MORGAN",
"land": "FU",
"companyCode": "1234",
"accountNumber": "00000000000",
"shortID4": "XYS"
}
]
}
]
Всякий раз, когда я хочу извлечь свойство JSON, например описание, конечный объект не соответствует ожидаемому. Он создает список, имеющий ArrayString.
List<String> values = resp.path("builds.description");
Всякий раз, когда я хочу проверить / напечатать, это просто невозможно из-за структуры.
Как получить значение из этого объекта JSON в простой список, который будет содержать значения? Спасибо
1 ответ
Решение
Надеюсь, что одно из решений может решить вашу проблему. Я рекомендую вам использовать первый.
String responseJson= "[{ \"builds\": [{ \"description\": \"JP MORGAN\", }, { \"description\": \"JP MORGAN\", } ] }]";
JsonPath jp = new JsonPath(responseJson);
List<String> singleDestList = jp.getList("builds[0].description");
System.out.println(singleDestList);
ИЛИ ЖЕ
List<List<List<String>>> descriptionsList =jp.get("builds.description");
List<Object> flatList = descriptionsList.stream().flatMap(List::stream).collect(Collectors.toList());
System.out.println(flatList.toString());
ИЛИ ЖЕ
String[] descriptionArray = jp.get("builds.description").toString().replaceAll("\\[", "").replaceAll("]", "").split(",");
List<String> descriptionList = Arrays.asList(descriptionArray);
System.out.println(descriptionList);