我已经花了几个小时对此感到沮丧。我已经构建了此字符串(请注意,该字符串是可变的,但如下所示,并且“ 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}]
答案 0 :(得分:0)
我终于想通了
我必须创建一个列表,然后必须遍历地图项
def map = [:]
def list = []
重复
map.clear()
map.put(Id,val);
list.add(map);