使用JsonSlurper-groovy解析json 2级别

使用JsonSlurper-groovy解析json 2级别,groovy,groovyshell,Groovy,Groovyshell,我对json响应进行了解析,并查看了它的键集,如下所示。它只给我3个按键。为什么它只生成3个键集的键值对?如何检索向下两级或两级以上字段的值 Json看起来像这样(在contentvariable中) 我解析并执行了如下键集检查: def RespSlurper = new JsonSlurper() def RespJson = RespSlurper.parseText(content) log.info(RespJson.keySet()) log.info(RespJson.values

我对json响应进行了解析,并查看了它的键集,如下所示。它只给我3个按键。为什么它只生成3个键集的键值对?如何检索向下两级或两级以上字段的值

Json看起来像这样(在
content
variable中)

我解析并执行了如下键集检查:

def RespSlurper = new JsonSlurper()
def RespJson = RespSlurper.parseText(content)
log.info(RespJson.keySet())
log.info(RespJson.values())
log.info(RespJson.get("seatbid"))
上面
log.info
的响应是

Mon Jan 12 16:12:25 EST 2015:INFO:1
Mon Jan 12 16:12:25 EST 2015:INFO:[nbr, seatbid, cur]
Mon Jan 12 16:22:47 EST 2015:INFO:[0, [{group=0, bid=[{w=0, id=1, nurl=abc.com, price=3.5999999046325684, crid=30364.s320x50m, adomain=[zagg.com, zagg.com], impid=1, iurl=abc.com}]}], USD]
Mon Jan 12 16:22:47 EST 2015:INFO:[{group=0, bid=[{w=0, id=1, nurl=abc.com, price=3.5999999046325684, crid=30364.s320x50m, adomain=[zagg.com, zagg.com], impid=1, iurl=abc.com}]}]
如何获取其他字段的值,例如
impid

 log.info(RespJson.get("impid"))

它被解析为一个HashMap,其中JSONArray将被解析为内容映射中的列表

RespJson.seatbid[0].bid[0].impid
应给出第一个
impid
的第一个
bid
的第一个
座椅ID


记录并查看解析后的响应。

感谢您的回复。很抱歉我回复晚了,我正在测试这个东西。如果
seirid[0].bid[0].impid
正在动态添加到
RespJson
中,我如何
log.info
。我尝试这样做
def RespNode=“RespJson”+“+assertionKey
log.info(RespNode)
其中
assertionKey
的值为
seirid[0]。bid[0]。impid
动态添加到
RespJson
log.info(RespNode)
的结果是
RespJson.seirId[0].bid[0].impid
而不是值。让它工作起来,使用这个
Eval.me('RespJson',RespJson,“def v='$RespNode')
然后
log.info(v)
解决了我在评论中解释的问题。实际上,我在上面添加的评论没有按预期工作。我仍然在寻找答案。
RespJson.seatbid[0].bid[0].impid