Java如何获取含字典列表的HashMap中zinssatz键的值?
解决嵌套HashMap中获取"zinssatz"值的问题
你的判断完全正确,zinssatz并不在最外层的HashMap里,而是嵌套在varten对应的**列表(List)**中的子HashMap里。直接调用mymap.get("zinssatz")肯定拿不到目标值,因为外层Map根本没有这个键。
具体实现步骤
- 从外层HashMap中取出
varten对应的列表对象,完成类型强转 - 从列表中取出目标子HashMap(你的数据里列表仅包含一个元素,取索引0即可)
- 从子HashMap中获取
zinssatz的值
代码示例
// 1. 获取varten对应的列表,强转为List<HashMap<String, Object>> List<HashMap<String, Object>> vartenList = (List<HashMap<String, Object>>) mymap.get("varten"); // 2. 校验列表非空后,取出第一个子HashMap if (vartenList != null && !vartenList.isEmpty()) { HashMap<String, Object> vartenMap = vartenList.get(0); // 3. 获取zinssatz的值 Double zinssatz = (Double) vartenMap.get("zinssatz"); // 按需转换为float或其他数值类型 System.out.println(zinssatz); // 输出0.5 }
额外提示
- 生产环境中建议增加类型校验,比如用
instanceof判断mymap.get("varten")是否为List类型,避免出现ClassCastException - 如果
varten列表可能包含多个元素,需根据业务逻辑遍历列表处理每个子HashMap
内容的提问来源于stack exchange,提问作者fabi80v
相关产品推荐
相关产品推荐

