我有一个mongo集合,该集合返回一个嵌套地图,其内容如下:
Root={id=8080, status=OK, rootSource=[{sid=CITY, value=1234, Date=2011-04-11}, {sid=CTRY, value=4321, Date=2011-04-09}]}
我必须对其执行两个单独的操作:
我在下面尝试了第一部分的第一个值,即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()
但是列表部分由于明显的原因而失败。
执行这两项任务的有效方法是什么。
答案 0 :(得分:0)
错误消息很清楚是不是?在某个点上有一组地图,而不是地图。我猜这应该可以获取第一个值(不强制转换):
data.get("Root").get("rootSource")).get(0).get("value").toString()
data
是什么类型?必须在任何地方使用泛型类型进行强制转换(这意味着强制转换未选中),这听起来很可怕。