在通过 Groovy 请求 HTTP 后,我有地图列表,我需要为每个元素添加一个新列表



在一个 HTTP 获取某个请求后,我创建了一个带有 id 的映射列表,如下所示

for (i=0; i<response.data.size(); i++){
    def tempMap = [:];
    tempMap['id'] = response.id[i];
    tempMap['name'] = response.name[i];
    listOfMaps.add(tempMap);
}
listOfMaps=[[id:1, name:123], [id:2, name:456]]

然后我使用该 id 执行 GET HTTP 请求以获取如下版本列表:

def myVerList = parser.parseText(response)
println(myVerList);
[[version:1.0.0, createdAt:Mon Jul 15 2019 15:51:48 GMT+0200], [version:2.0.1, createdAt:Mon Jul 15 2019 15:25:48 GMT+0200], [version:2.0.0, createdAt:Mon Jul 15 2019 14:51:48 GMT+0200], [version:1.3.0, createdAt:Mon Jul 15 2019 13:51:48 GMT+0200], [version:1.1.0, createdAt:Mon Jul 8 2019 18:22:48 GMT+0200]]

我需要将此新列表添加到上面的给定 id 中。

最终结果应如下所示:

[
[id:1, name:123],  [[version:1.0.0, createdAt:Mon Jul 15 2019 15:51:48 GMT+0200], [version:2.0.1, createdAt:Mon Jul 15 2019 15:25:48 GMT+0200], [version:2.0.0, createdAt:Mon Jul 15 2019 14:51:48 GMT+0200], [version:1.3.0, createdAt:Mon Jul 15 2019 13:51:48 GMT+0200], [version:1.1.0, createdAt:Mon Jul 8 2019 18:22:48 GMT+0200]]], 
[id:2, name:456],  [[version:2.0.0, createdAt:Mon Jul 15 2019 15:51:48 GMT+0200], [version:2.0.1, createdAt:Mon Jul 15 2019 15:25:48 GMT+0200], [version:2.0.0, createdAt:Mon Jul 15 2019 14:51:48 GMT+0200], [version:1.3.0, createdAt:Mon Jul 15 2019 13:51:48 GMT+0200], [version:1.1.0, createdAt:Mon Jul 8 2019 18:22:48 GMT+0200]]
]

如何在 JSR232 后置处理器内的 Groovy 中出现问题?

我试过这个它有效,但它有重复的数据

def response = prev.getResponseDataAsString();
def myJson = parser.parseText(response)
for(item in listOfMaps){
    if (item["id"] == vars.get("thatId")) {  item["versions"]=myJson;   }
        newList.add(item)
}
vars.putObject("newList",newList);

唯一的问题是newList有两组条目

您需要比较整数:

if (item["id"] == Integer.parseInt(vars.get("thatId"))) {

最新更新