У меня есть коллекция mon go, которая возвращает вложенную карту, содержимое которой выглядит следующим образом:
Root={id=8080, status=OK, rootSource=[{sid=CITY, value=1234, Date=2011-04-11}, {sid=CTRY, value=4321, Date=2011-04-09}]}
Мне нужно выполнить две отдельные операции над ней:
- Извлеките оба значения, т. Е. 1234 и 4321
- Проверьте, существуют или нет значения элементов, т. Е. 1234 и 4321.
Я попробовал ниже для первого значения первой части, т.е. 1234, который не работает (следовательно, еще не пробовал вторую часть):
((Map<String, ArrayList<Object>>) (data.get("Root")).get("rootSource")).get("value").toString()
Исключение составляет:
java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.util.Map
Есть еще одна карта, которая возвращается, как показано ниже:
Root = {id = 9090, status = OK, rootSource = {sid = CITY, value = 9999, Date = 2011-04-11}}
И я обращаюсь с этим как:
((Map<String, Object>) (data.get("Root")).get("rootSource")).get("value").toString()
Но часть списка не работает по очевидным причинам.
Как эффективно выполнить две задачи.