Groovy替换JSON块中的字符串

Groovy替换JSON块中的字符串,groovy,jmeter,Groovy,Jmeter,我花了好几个小时在这上面,现在很沮丧。我已经构建了这个字符串(注意,这个字符串是可变的,但如下所示,对于“Id1”或“Id2”必须具有相同的语法,但值可以不同) 我想用str1替换myList:[{“Id”:0}]的整个值,如下所示 someJson: { "myList": [{"Id": 0}], } 所以我有 abc = new groovy.json.JsonSlurper().parse(someJson); abc.myList= str1 我在JSON块上的结果是这样的

我花了好几个小时在这上面,现在很沮丧。我已经构建了这个字符串(注意,这个字符串是可变的,但如下所示,对于“Id1”或“Id2”必须具有相同的语法,但值可以不同)

我想用str1替换myList:[{“Id”:0}]的整个值,如下所示

someJson: {
    "myList": [{"Id": 0}],
}
所以我有

abc = new groovy.json.JsonSlurper().parse(someJson);
abc.myList= str1
我在JSON块上的结果是这样的,我不想要\n我已经尝试过转义,但它不起作用

"myList": "[{\"Id1\": 775},{\"Id2\": 776}]",
Groovy似乎在我的“我不想Groovy那样做。我想让它接受我的str1并在mylist中替换它。我甚至试着在str1中的“后面添加\或\\”,但它不起作用

我想我必须在groovy中将str1转换成映射??所以我试过了

    abc.myList= Eval.me(str1)
但我得到了这个错误

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

我终于明白了

我必须创建一个列表,然后我必须遍历映射项

def map = [:]
def list = []
迭代

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

你在说什么迭代?什么是
Id
我猜你的意思是
“Id”
?您也可以只使用列表和映射文本:
deflist=[[Id:val]]
您不能将JSON作为Groovy进行求值
{“X”:1}
是一个JSON对象/映射-如果将其放入groovy中,它将把
{}
读取为闭包(这基本上就是错误告诉您的)。
map.clear()
map.put(Id,val);
list.add(map);