[英]Groovy: Add values from json to a map
我有以下json。 如何創建一個以name
為key
、 id
為value
的動態映射。 並刪除key
中具有模式 (~/ ([0-9])$/) 的任何內容,例如(2)
或(3)
我的代碼:
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 文件:
{
"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"
}
}
]
}
電流輸出
fruitsMap: [[Apple (2), Mango, Banana]:[131, 151, 161]]
[Apple (2), Mango, Banana]
[131, 151, 161]
Id of Banana is: []
期望輸出:
fruitsMap: [
Apple : 131
Mango : 151
Banana : 161
]
[Apple, Mango, Banana]
[131, 151, 161]
Id of Banana is: 161
我認為而不是
def fruitsMap = [:].withDefault{[]}
transitionsobj.each {
fruitsMap.put(transitionsobj.data.fruits.name, transitionsobj.data.fruits.id)
}
您只需要:
def fruitsMap = transitionsobj.data.fruits.collectEntries {
[it.name.replaceAll(/(?:\s+).*/, ''), it.id]
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.