使用Groovy在地图下添加新的键和值对

时间:2018-07-21 11:10:02

标签: groovy jsonslurper

{
"map": {
    "key1": [3,12,13,11],
    "key2": [21,23],
    "key3": [31,32,33]
}}

我有这个JSON。类似于key1或key2,我想使用groovy向此json添加新的密钥对。我正在使用JsonSlurper()。

def mJson = new File(MAPPINGJSON).text;
def mJsonObject = parser.parseText(mJson);
def list=  mJsonObject.map;
def keyFound= false;
for (item in list)
{
    if (item.key == templateKey)
    {
        def values = item.value;
        values.add(<some value>);
        item.value= values;
        keyFound = true;
        break;
    }
    keyFound = false;
}
if(!keyFound)
{
    println "Key not found";
 //   How to add new key pair?
}

1 个答案:

答案 0 :(得分:0)

daggett的

list[templateKey] = [<some value>]是一种方法,但您也可以使用一个衬纸来完成这项工作。

def list=  mJsonObject.map;
list.computeIfAbsent(templateKey, { [] }).add(templateValue)

它使用一个函数来提供地图的默认值。