如何从列表中获取特定项目<map <string,object =“”>&gt;

时间:2015-07-08 22:40:45

标签: java

当我运行此代码时:

List<Map<String, Object>> beforeDelete = query("select count(*) from wp_announcement where announcement_id =" + announcementId, null);

System.out.println("This is the count : " + beforeDelete.get(0));

我得到了这个结果:

This is the count : {C1=1}

如何才能获得1,而不是{C1=1}

2 个答案:

答案 0 :(得分:2)

如果您知道返回的地图的结构与您显示的结构完全一致,您可以在C1键中获取值,如下所示:

int val = ((Integer)beforeDelete.get(0).get("C1")).intValue();

添加安全检查以确保结果只有一个元素,并且初始元素的键"C1"映射到java.lang.Integer

只要查询得到修复,这应该是安全的。如果查询来自您控件之外的某些来源,则需要通过其他方式来访问结果。

注意:假设查询进入某个RDBMS,您应该参数化查询以避免注入攻击。

答案 1 :(得分:1)

您收到{C1=1}因为beforeDelete.get(0)返回Map<String, Object>

  

如何才能获得1而不是{C1 = 1}?

就像从地图中检索元素,即使用其键

beforeDelete.get(0).get("C1");