2016-02-29 87 views
0

我正在使用SoapUI測試RESTful webservice。我們使用Groovy。 我正在使用jsonslurper解析響應作爲對象類型。使用Groovy將WebService響應轉換爲Json Arrary和Jsobobject

我們效應初探與此類似:

{ 
    "language":[ 
     { 
      "result":"PASS", 
      "name":"ENGLISH", 
      "fromAndToDate":null 
     }, 
     { 
      "result":"FAIL", 
      "name":"MATHS", 
      "fromAndToDate": { 
       "from":"02/09/2016", 
       "end":"02/09/2016" 
      } 
     }, 
     { 
      "result":"PASS", 
      "name":"PHYSICS", 
      "fromAndToDate":null 
     } 
    ] 
} 

在此之後,我卡住瞭如何。

  1. GET數組(因爲這是陣列(始於 - language
  2. 如何通過傳遞關鍵從中得到每個陣列單元格的值(我應該得到的值result關鍵的,如果只有name='MATHS')。

我可以用Java做,但因爲剛纔學習的Groovy我不明白這一點。我們有相同的名字不同的密鑰。

回答

2

你可以只解析它在一個地圖,然後使用標準時髦的樂趣圖片:

def response = '''{ 
    "language":[ 
     {"result":"PASS","name":"ENGLISH","fromAndToDate":null}, 
     {"result":"FAIL","name":"MATHS","fromAndToDate":{"from":"02/09/2016","end":"02/09/2016"}}, 
     {"result":"PASS","name":"PHYSICS","fromAndToDate":null} 
    ] 
}''' 

import groovy.json.* 

// Parse the Json string  
def parsed = new JsonSlurper().parseText(response) 

// Get the value of "languages" (the list of results) 
def listOfCourses = parsed.language 

// For this list of results, find the one where name equals 'MATHS' 
def maths = listOfCourses.find { it.name == 'MATHS' }