2016-08-22 85 views
0

我想将我的json响应值添加到数组中。我的Groovy脚本,Groovy:为什么节点返回null

import groovy.json.* 
def ResponseMessage = '''{ 
"Unit": { 
    "Screen": [{ 
     "Profile ": { 
      "ID ": 12, 
      "Rate ": 0 
     }, 
     "Rate ": 600, 
     "Primary ": 1, 
     "Audio ": [{ 
      "Id ": 1, 
      "Name ": null 
     }], 
     "Pre ": 5, 
     "Post ": 1 
    }] 
} 
} ''' 
def json = new JsonSlurper().parseText(ResponseMessage) 

def Screen = json.Unit.Screen 
log.info Screen 
def array= [] 
Screen.each { s -> 
array.addAll(s.Rate,s.Primary,s.Pre) 
log.info "array : " + array 
} 

阵列正在恢复, 信息:数组:[NULL,NULL,NULL]

+1

你在你的Json空间?即:'“Profile”'< - 在末尾 –

+0

是:(手动删除空格后,我得到了这个错误错误:java.lang.IndexOutOfBoundsException:Index:600,Size:0 – Gkm

回答

3

取而代之的是的 “创建数组,调用的addAll循环”模式,尝试这样的:

def array = Screen.collectMany { s -> 
    [s.Rate,s.Primary,s.Pre] 
} 

(当然,一旦你从你的JSON键删除空格)

+0

非常感谢你,它的工作原理。优秀:) – Gkm

+0

为什么它给了我一个null键的错误@tim_yates :( – Gkm

+0

@Geeta你能举一个例子吗?我不确定你的意思是...可能是另一个问题吗? –