我有这样的地图:
[One:[example:value1, example2:value2] ,Two[example 1:value3, example2:value4]]
我正在从另一个映射中的值匹配value1,但是我需要获取键,一个或两个,取决于它是否匹配。
所以,如果我说:
if( value1.equals (otherMapValue))
Return One
该地图来自json响应,因此,除了地图之外,如果还有更好的方法可以更改它。抱歉,我正在使用手机的格式
这应该做:
def someMethod(valueFromOthermap) {
def map = [
One: [example1: 'value1', example2:'value2'],
Two: [example1: 'value3', example2:'value4']
]
map.findResults { k, v ->
valueFromOthermap in v.values() ? k : null
}
}
assert someMethod('value1') == ['One']
如果要查找第一个匹配键而不是键列表,请使用findResult
代替代替findResults
,其他所有内容保持不变。
更新:
关于要Map
解析的JSON,可以很容易地将JSON共振解析Map
为如下所示:
Map responseMap = new groovy.json.JsonSlurper().parseText( jsonResponseString )
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句