[英]Groovy: Add values from json to a map
I have the following json.我有以下json。 How can I create a dynamic map with
name
as key
and id
as value
.如何创建一个以
name
为key
、 id
为value
的动态映射。 And removing anything in key
which has pattern (~/ ([0-9])$/) which is for example (2)
or (3)
并删除
key
中具有模式 (~/ ([0-9])$/) 的任何内容,例如(2)
或(3)
MyCode:我的代码:
transitionsobj = jiraGetIssueTransitions(idOrKey: Jira_id)
echo prettyPrint(toJson(transitionsobj.data)) \\This prints the below json
def fruitsMap = [:].withDefault{[]}
transitionsobj.each {
fruitsMap.put(transitionsobj.data.fruits.name, transitionsobj.data.fruits.id)
}
println "fruitsMap: ${fruitsMap}"
println(fruitsMap.keySet());
println(fruitsMap.values());
println "Id of Banana is: ${fruitsMap['Banana']}"
JSON File: JSON 文件:
{
"expand":"fruits",
"fruits":[
{
"id":"131",
"name":"Apple (2)",
"to":{
"description":"",
"name":"Apple",
"id":"13895"
}
},
{
"id":"151",
"name":"Mango",
"to":{
"description":"",
"name":"Mango",
"id":"13896"
}
},
{
"id":"161",
"name":"Banana",
"to":{
"description":"",
"name":"Banana",
"id":"10700"
}
}
]
}
Current Output电流输出
fruitsMap: [[Apple (2), Mango, Banana]:[131, 151, 161]]
[Apple (2), Mango, Banana]
[131, 151, 161]
Id of Banana is: []
Desired Output:期望输出:
fruitsMap: [
Apple : 131
Mango : 151
Banana : 161
]
[Apple, Mango, Banana]
[131, 151, 161]
Id of Banana is: 161
I think instead of我认为而不是
def fruitsMap = [:].withDefault{[]}
transitionsobj.each {
fruitsMap.put(transitionsobj.data.fruits.name, transitionsobj.data.fruits.id)
}
You just need:您只需要:
def fruitsMap = transitionsobj.data.fruits.collectEntries {
[it.name.replaceAll(/(?:\s+).*/, ''), it.id]
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.