Как пройти по списку и найти недостающие блоки в java 8? - PullRequest
0 голосов
/ 13 февраля 2020

У нас есть ответ JSON в следующем формате. Нам необходимо эффективно обработать json и зарегистрировать некоторые идентификаторы элементов, в которых отсутствует некоторая важная информация, например блок опций (по крайней мере, для целей отладки). Ниже приведен пример ответа.

{
    "items": [
        {
            "itemId": "xxx",
            "priceList": [
                {
                    "price": 0.0,
                    "options": [
                        {
                            "price": 0.0,
                            "priceType": "yyy"
                        }
                    ]
                }
            ]
        },
        {
            "itemId": "xxx",
            "priceList": [
                {
                    "price": 0.0
                }
            ]
        },
        {
            "itemId": "xxx",
            "priceList": [
                {
                    "price": 0.0,
                    "options": [
                        {
                            "price": 0.0,
                            "priceType": "yyy"
                        }
                    ]
                }
            ]
        },
        {
            "itemId": "xxx",
            "priceList": [
                {
                    "price": 0.0
                }
            ]
        }
    ]
}

Я могу записать идентификаторы пропущенных предметов, как показано ниже

items.forEach(item -> {
if (CollectionUtils.isEmpty(item.getUoms().get(0).getPricingOptions())) {
    log.info("price options is missing for item {} ", item.getItemId());
}

});

Есть ли лучший / более быстрый способ сделать это?

Спасибо

1 Ответ

0 голосов
/ 13 февраля 2020

Не уверен, что вы бы назвали это лучше, но вы можете использовать потоки для реализации этого:

items.stream()
    .filter(it -> it.getUoms().get(0).getPricingOptions().isEmpty())
    .forEach(it -> log.info("price options is missing for item {} ", it.getItemId()));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...