如何获取复杂图中的出现次数?
例如
def a = [ CRQ1:[STATUS: "Scheduled"], CRQ1:[STATUS: "Draft"] ]
我需要在这里获取状态信息
a.CRQ1.STATUS.size()
预期输出:2
实际输出:5
答案 0 :(得分:2)
您的地图包含两次相同的密钥:
groovy:000> a = [CRQ1:[STATUS: "Scheduled"], CRQ1:[STATUS: "Draft"]]
===> [CRQ1:[STATUS:Draft]]
groovy:000> a.CRQ1.STATUS.size()
===> 5
(请注意,.size()
在这里返回单词 Draft 的字符串长度)
如果您显式地使用传播运算符,并且打算在所有元素上调用函数,则这样的错误更容易捕获。例如。失败了:
groovy:000> a*.CRQ1*.status.size()
ERROR groovy.lang.MissingPropertyException:
No such property: CRQ1 for class: java.util.LinkedHashMap$Entry
所以我猜您想要一张地图列表:
groovy:000> a = [[CRQ1:[STATUS: "Scheduled"]], [CRQ1:[STATUS: "Draft"]]]
===> [[CRQ1:[STATUS:Scheduled]], [CRQ1:[STATUS:Draft]]]
groovy:000> a.CRQ1.STATUS.size()
===> 2