2016-08-22 8 views
0

値は応答として表示され、log.infoで印刷できますが、配列に追加するとエラーが表示されます。エラーが発生しましたgroovy.lang.MissingPropertyException:値が存在する場合でもそのようなプロパティはありません

import groovy.json.* 
def ResponseMessage = ''' { 
"Unit": { 
    "Profile": 12, 
    "Name": "Geeta" 
}, 
"UnitID": 2 
} ''' 
def json = new JsonSlurper().parseText(ResponseMessage) 
log.info json.UnitID 
log.info json.Unit.Profile 
log.info json.Unit.Name 

def arrayjson = json.collectMany { s -> 
[s.UnitID,s.Unit.Profile,s.Unit.Name] 
} 

log.info "arrayjson : " + arrayjson 

、エラーメッセージ、

groovy.lang.MissingPropertyException: No such property: UnitID for class: java.util.HashMap$Entry Possible solutions: key error at line: 14 

答えて

2

キー/値のペアを超えるcollectMany反復します。次のことを考えてください(私が目標を理解する限り):

import groovy.json.* 

def ResponseMessage = ''' { 
"Unit": { 
    "Profile": 12, 
    "Name": "Geeta" 
}, 
"UnitID": 2 
} ''' 

def json = new JsonSlurper().parseText(ResponseMessage) 
println json.UnitID 
println json.Unit.Profile 
println json.Unit.Name 

// this illustrates how collectMany works, though it does 
// not solve the original goal 
json.collectMany { key, val -> 
    println "key: ${key} , val: ${val}" 
    [] 
} 

def arrayjson = [json.UnitID,json.Unit.Profile,json.Unit.Name] 

println "arrayjson : " + arrayjson 
+0

ありがとう@Michael Easter – Gkm

関連する問題