我正在尝试在 groovy 中动态运行代码。我有someNode[0]
,这是变量中的值var1
然后我像这样添加双引号
var2 = "\""+var1+"\""
然后我尝试运行这个
request.abc."$var2"=Value
I saw here https://stackoverflow.com/questions/6920826/question-about-in-groovy可以在属性和方法上完成此类操作。但上面的代码不起作用。给我错误
An error occurred [Cannot set property '"someNode[0]"' on null object], see error log for details
任何帮助表示赞赏。谢谢。
Edit这是我的请求的片段
{
"app":{
"bundle":"531323947",
"cat":[
"IAB1",
"IAB9",
"IAB9-30",
"entertainment",
"games"
],
"id":"agltb3B1Yi1pbmNyDAsSA0FwcBitsL4UDA",
.
.
我试图操纵的领域是cat[0]
,即IAB1
(我刚刚用过abc
and someNode[0]
在我上面写的代码中,但实际上它们是app
and cat[0]
)
另外,我用以下方法解析了请求jsonslurper
在运行上面的代码之前
感谢您的帮助
做到这一点的一种方法是Eval
def request =[
"app":[
"bundle":"531323947",
"cat":[
"IAB1",
"IAB9",
"IAB9-30",
"entertainment",
"games"
],
]
]
assert request.app.cat[0]=='IAB1'
def var = 'request.app.cat[0]'
Eval.me('request', request, "$var = 'new value'")
assert request.app.cat[0]=='new value'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)