Итак, я искал этот ответ, но не нашел решения, отражающего мою ситуацию.По сути, у меня есть структура JSON, которая выглядит следующим образом:
{
"count": 4424,
"results": [
{"id": 2718, "name": "fox", "location": "Omaha"},
{"id": 2719, "name": "bear", "location": "Miami"}
...
more objects containing an ID field
...
]
}
Я хочу иметь возможность анализировать все значения "id" и сохранять их в списке, который я буду циклически повторять для последующего RESTзвонки в другие конечные точки.Если бы я хотел, чтобы весь объект содержал поле id, я знал, что мог бы создать новый объект и создать собственный десериализатор JSON, но так как это всего лишь одно поле, которое я хочу, это выглядит как избыточное убийство.
Моей первоначальной мыслью было сделать что-то в собственном десериализаторе, например, так:
List<String> idList = new ArrayList<String>();
JsonNode node = jp.getCodec().readTree(jp); // jp = JsonParser
JsonNode resultsNode = node.get("results");
resultsNode.forEach(result -> {
JsonNode idNode = result.get("id");
if (idNode != null) {
String id = idNode.textValue().toUpperCase();
idList.add(id);
}
});
Это будет правильный способ справиться с этим?Если нет, то какой будет лучший / эффективный способ разбить эти значения идентификаторов в список?
Кроме того, я читал в Интернете о том, что, возможно, захочется выполнить кэширование при попытке чего-то подобного (список может содержать более 1000 идентификаторов).), но я не совсем уверен, что это значит в этом сценарии.Кто-нибудь сможет объяснить это?