2015-01-12 2 views
0

json 응답을 구문 분석 한 결과 아래와 같이 해당 키셋을 살펴 보았습니다. 그것은 나에게 3 개의 키셋 만 준다. 키 - 값 쌍을 3 개의 키셋으로 만 만드는 이유는 무엇입니까? 둘 이상의 레벨이 내려간 필드의 값을 검색하려면 어떻게합니까?JsonSlurper - groovy로 json 2 레벨 구문 분석

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}]}] 
입니다 :

JSON 내가 구문 분석과 같은 키 집합 체크를 한

{ 
    "seatbid":[ 
     { 
     "bid":[ 
      { 
       "id":"1", 
       "impid":"1", 
       "price":3.5999999046325684, 
       "nurl":"abc.com", 
       "adomain":[ 
        "zagg.com", 
        "zagg.com" 
       ], 
       "iurl":"abc.com", 
       "crid":"30364.s320x50m", 
       "h":0, 
       "w":0 
      } 
     ], 
     "group":0 
     } 
    ], 
    "cur":"USD", 
    "nbr":0 
} 

(content 변수에있는) 다음과 같습니다

다른 필드의 값을 얻으려면 어떻게해야합니까? impid?

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

답변

0

JSONArray가 콘텐츠 맵 내부의 목록으로 구문 분석되는 HashMap으로 구문 분석됩니다.

RespJson.seatbid[0].bid[0].impid 

먼저 seatbid의 제 bid의 제 impid 제공한다.

구문 분석 후 로그를보고 살펴보십시오.

+0

답장을 보내 주셔서 감사합니다. 내 늦은 답장을 드려 죄송합니다.이 물건을 테스트하고있었습니다. 'seatbid [0] .bid [0] .impid'가'RespJson'에 동적으로 추가되면 어떻게'log.info'합니까? 나는 이것을하려고 노력했다. "RespNode ="RespJson "+". assertionKey "log.info (RespNode)'여기서'assertionKey'의 값은'seatbid [0] .bid [0] .impid'입니다. 'RespJson'에 동적으로 추가되었습니다. 'log.info (RespNode)'의 결과는'RespJson.seatbid [0] .bid [0] .impid'이며 값은 아닙니다. – user1207289

+0

내 의견에 설명 된 문제를 해결 한이'Eval.me ('RespJson', RespJson, "def v = 'RespNode'")'및 다음에'log.info (v)'를 사용했습니다. – user1207289

+0

실제로 위에서 추가 한 설명이 예상대로 작동하지 않습니다. 나는 아직도 대답을 찾고있다. – user1207289