Groovy替换JSON块中的字符串

时间:2018-08-17 22:36:07

标签: groovy jmeter

我已经花了几个小时对此感到沮丧。我已经构建了此字符串(请注意,该字符串是可变的,但如下所示,并且“ Id1”或“ Id2”的语法必须相同,只是值可能不同)

str1= [{"Id1": 775},{"Id2": 776}]

我喜欢将myList:[{“ Id”:0}]的整个值替换为str1,如下所示,在我的JSON块中

someJson: {
    "myList": [{"Id": 0}],
}

我有

abc = new groovy.json.JsonSlurper().parse(someJson);
abc.myList= str1

我在该JSON块上得到的输出是这个,我不希望\我尝试转义,但不起作用

"myList": "[{\"Id1\": 775},{\"Id2\": 776}]",

Groovy似乎在我的“后面添加了\。我不希望groovy这样做。我希望它采用我的str1并将其替换为mylist。我什至尝试在str1的”后面添加\或\\但它没有用。

我认为我必须将str1转换成Groovy中的地图?所以我尝试了

    abc.myList= Eval.me(str1)

但我收到此错误

Script1.groovy: 1: expecting '}', found ':' @ line 1, column 15.
   [{"Id1": 775},{"Id2": 776}]

1 个答案:

答案 0 :(得分:0)

我终于想通了

我必须创建一个列表,然后必须遍历地图项

def map = [:]
def list = []

重复

map.clear()
map.put(Id,val);
list.add(map);