从映射数组groovy中的Key/value获取值

从映射数组groovy中的Key/value获取值,groovy,jmeter,jmeter-3.2,jsr223,Groovy,Jmeter,Jmeter 3.2,Jsr223,我有这样的代码: def options = JsonPath.read(prev.getResponseDataAsString(), '$.options') def randomOption = options.get(RandomUtils.nextInt(0, options.size())) def code = randomOption.get("code") vars.put('code1', code) def values = randomOption.get('values

我有这样的代码:

def options = JsonPath.read(prev.getResponseDataAsString(), '$.options')
def randomOption = options.get(RandomUtils.nextInt(0, options.size()))
def code = randomOption.get("code")
vars.put('code1', code)
def values = randomOption.get('values')
def randomValue = values.get(RandomUtils.nextInt(0, values.size())) as 
String
def val = randomValue['value']
vars.put('randomValue', randomValue)
vars.put('ValueF', val). 
在随机变量中,我得到的值为[label:Red,value:8]。我需要获取您试图调用的value=8的值

vars.put('ValueF', [label:Red, value:8])
这是
put(String,Map)

JMeterVariables没有这样的方法

您可以使用putObject(),它接受字符串作为键,对象作为值:

vars.putObject('ValueF', val)

randomvariable.value
randomvariable['value']
randomvariable.get('value')
都应该可以工作。你有什么错误?有这个错误!javax.script.ScriptException:javax.script.ScriptException:groovy.lang.MissingMethodException:没有方法签名:org.apache.jmeter.threads.JMeterVariables.put()适用于参数类型:(java.lang.String,[C)value:[ValueF,[label:Red,value:8]]您的错误声明了一个
put
调用,其中涉及jmeter。您的问题似乎不仅仅是“如何在groovy中访问映射中的值”,还有一个更大的问题,您遗漏了。请详细说明。请将此添加到问题中。在注释中阅读非常困难。调试并查看传递给
vars.put('code1',code)的内容
。此方法接受两个字符串,因此看起来
code
不是字符串。您的问题是不可再现的。如果您不知道调用的函数返回的类型,请将所有
def
关键字替换为预期的类型,这样您就可以使用详细信息获取编译错误。将保存对象而不是Value.ie 8.我需要变量'ValueF'上的Value=8?我的注释上有任何输入吗?您可以访问它,比如:def objct=[Value:8];vars.putObject('ValueF',objct');println(vars.getObject('ValueF').Value)。或者您可以只将8放入vars.put('ValueF',objct.Value)这样的变量,因为我不能使用def objct=[value:8]w.r.t以上有问题的代码!vars.putObject('ValueF',[value:val.value])