从地图中提取所需的列表

时间:2014-03-28 15:11:15

标签: groovy

我有一张如下地图

  

[“name1”:[“value1”:“name1”,“value2”:“check1”],   “name2”:[“value1”:“name2”,“value2”:“check2”],   “name3”:[“value1”:“name3”,“value2”:“check3”]等

我有一个

列表
  

[name1,name2]

我想拉出name1和name2的所有“value2”列表。

as

  

[check1,check2]

现在我改变了检索我的值的方式,因此它将是

  

[“value1”:“name1”,“value2”:“check1”],[“value1”:“name2”,“value2”:“   check2“],[”value1“:”name3“,”value2“:”check3“]

如何立即提取值?

1 个答案:

答案 0 :(得分:0)

假设您的地图位于名为map的变量中。您可以使用findResults方法查找密钥位于list的任何条目。如果是,则添加映射value2条目。

def list = ['name1', 'name2']
def newList = []

newList = map.findResults { key, value ->
    if (key in list) { value['value2'] }
}

assert newList = [check1, check2]