Как перебрать HashMap с вложенным ArrayList внутри - PullRequest
0 голосов
/ 10 июля 2019

В настоящее время я сохраняю ответ JSON на карте и пытаюсь перебирать вложенные значения HashMap.Например:

  • Индекс 0
  • Индекс 1 -> Ключ: «Пример»:

    • Ключ: «Пример 2»
    • Значения «Пример 3» (ArrayList)

      • Ключ, Значения ... (HashMap)

Моя карта выглядит следующим образом:

HashMap<Object, Object> map = (HashMap< Object, Object >) result.getBody();

Что сохраняет результат из следующего Spring Boot ResponseEntity:

RestTemplate restTemplate = new RestTemplate();
ResponseEntity<Object> result = restTemplate.exchange(url, HttpMethod.GET,
    entity, Object.class);

И для перебора первого набора индексов яделать:

 for (Map.Entry<Opportunities, Opportunities> entry : resultMap.entrySet()) {
    System.out.println(entry.getValue());
}

Как я могу перебрать значения внутри индекса 1?Я попытался адаптировать это решение , но безуспешно.Заранее спасибо.

Редактировать - ответ JSON выглядит следующим образом:

{
"metadata": {
    "page": 0,
    "pageSize": 1,
    "pageCount": 10,
    "totalCount": 10
},
"Users": [
    {
        "ID": 1216411,
        "name": "John",
        "name": "John",
        "Order_Details": {
            "id": 1216411234,
            "item": "Electric Razer",
            "region": {
                "name": "United States",
                "regionCode": "US"
            }
        },
        "Suppliers": [
        ...

Ответы [ 2 ]

1 голос
/ 10 июля 2019

Итак, если у вас есть что-то вроде этого.

Map<String,LinkedHashMap<String,Long>> map =...
for (Map<String,Long> lhms : map.values()) {
    for (long value : lhms.values()) {
         System.out.println(value);
    }
}
0 голосов
/ 10 июля 2019

WJS дал очень хороший ответ на вопрос, который вы задали ... ... но это определенно звучит так, как будто вы захотите вернуться к своему «дизайну».

В частности, как вы хотите отобразить данные JSON на объекты Java?

Как сказал Пшемо, HashMaps отлично подходят для быстрого поиска заданного ключа ... но вы не можете легко перебирать список в том же порядке, в котором вы его создали.

Существует также вопрос о том, насколько «простыми» или «сложными» вы хотите сделать свои «вложенные данные».

Все это будет влиять на то, насколько легко создавать, читать и / или обновлять ваш список.

Сильное предложение: рассмотрите возможность использования Джексона:

https://www.baeldung.com/jackson-object-mapper-tutorial

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...