Будьте уверены - 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);
Другие вопросы по тегам