【发布时间】:2014-11-21 13:07:58
【问题描述】:
我正在尝试在 groovy 中动态运行代码。我有someNode[0],这是变量var1中的值
然后我像这样添加双引号
var2 = "\""+var1+"\""
然后我尝试运行它
request.abc."$var2"=Value
我看到here 可以在属性和方法上执行此类操作。但是上面的代码不起作用。给我错误
An error occurred [Cannot set property '"someNode[0]"' on null object], see error log for details
感谢任何帮助。谢谢。
编辑 这是我的请求的sn-p
{
"app":{
"bundle":"531323947",
"cat":[
"IAB1",
"IAB9",
"IAB9-30",
"entertainment",
"games"
],
"id":"agltb3B1Yi1pbmNyDAsSA0FwcBitsL4UDA",
.
.
我要操作的字段是cat[0],即IAB1(我只是在上面写的代码中使用了abc 和someNode[0],但实际上它们是app 和cat[0])
另外,在运行上述代码之前,我使用jsonslurper 解析了请求
感谢您的帮助
【问题讨论】:
-
怎么样 var2 = var1 request.abc."$var2"=Value
-
@vahid 感谢您的回复。我试图跑
var2 = var1request.abc."$var2"=Value,但它给了我同样的错误An error occurred [Cannot set property 'someNode[0]' on null object], see error log for details -
通常 [0] 告诉 groovy 返回任何数组的第一个元素 - 它可能与此有关 - 有没有办法在你设置好值后删除它并添加它?
-
你能告诉我们你的要求吗? @vahid 是对的,虽然您可以通过字符串访问,但对于数组来说可能并不容易。您上面的代码可能已经失败,因为“请求”中没有“abc”。
-
@cfrick 我编辑了问题以显示请求。谢谢