Как получить элемент внутри карты <> в Java? - PullRequest
0 голосов
/ 29 апреля 2020

У меня есть эта карта (не обращайте внимания на имена, потому что они являются обобщенными c):

Map<Enum, List<anObject>> map;

Она возвращает мне вложенную Json, например:

"map": {
        "ENUM1": [{
          "string1" : "Something written here",
          "check" : true,
          "string2" : "Something written here",
        }],
        "ENUM2": [{
          "string1" : "Something written here",
          "check" : true,
          "string2" : "Something written here",

        }]
     }

Как мне получить "string1" из первого объекта Enum ENUM1 для сохранения его в переменную?

Может быть, это глупый вопрос, но я не нашел ничего подобного в этом сайт. Спасибо!

1 Ответ

1 голос
/ 29 апреля 2020

Ваши значения ENUM на карте похожи на другую карту. Поэтому я говорю так:

Map<Enum, Map<String, Object>>

Однако вопрос не ясен! Вот одно из возможных решений.

import java.util.*;    
public class Main {

    public static void main(String[] args) {

        Map<Enum, Map<String, Object>> map = new HashMap<>();
        Map<String, Object> value = new HashMap<>();
        value.put("String1", "Something written here");
        value.put("check", true);
        value.put("String2", "Something written here");
        map.put(Enum.ENUM1, value);
        value = new HashMap<>();
        value.put("String1", "Something written here");
        value.put("check", true);
        value.put("String2", "Something written here");
        map.put(Enum.ENUM2, value);

        //string1 Object always will be String
        String result;
        for (Map.Entry<String,Object> entry :  map.get(Enum.ENUM1).entrySet()) {
            if (entry.getKey().equals("string1")) {
                result = entry.getValue().toString();
            }
        }

    }
}

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