2017-01-07 13 views
2

JSONレスポンスから値のリストを検索しようとしたら、少しガイダンスが必要です。jsonレスポンスを反復する方法

私は以下のようになりますJSON持っている:「ReviewRatingCount」

"reviewRatingCount": [ 
      { 
     "id": 1, 
     "name": "xxx", 
     "value": x, 
     "percentage": 8.49 
     }, 
      { 
     "id": 2, 
     "name": "xxx", 
     "value": x, 
     "percentage": 11.19 
     }, 
      { 
     "id": 3, 
     "name": "xxx", 
     "value": x, 
     "percentage": 22.74 
     } 
... 

は、今、私が保証するためのチェックを行ってきたが等しいnullではありません:

def reviewratingcount = json.reviewratingcount 
assert reviewratingcount != null 

私が何をしたいですこの 'reviewRatingCount'内のIDが1,2,3であることを確認してください。事実上、reviewRatingCount内のIDを繰り返し処理し、すべてのIDに正しい値が含まれていることを確認してください。これはGroovyスクリプティングにどのように適用されるのですか?この例だけでなく、 'name'のような他のチェックにも適用できますか?

ありがとうございます。

答えて

3

、反復*演算子を使用する必要はありません:

import groovy.json.JsonSlurper 

def json = '''{"reviewRatingCount": [ 
      { 
     "id": 1, 
     "name": "Terrible", 
     "value": 214, 
     "percentage": 8.49 
     }, 
      { 
     "id": 2, 
     "name": "Poor", 
     "value": 282, 
     "percentage": 11.19 
     }, 
      { 
     "id": 3, 
     "name": "Average", 
     "value": 573, 
     "percentage": 22.74 
     } 
]}''' 

def slurped = new JsonSlurper().parseText(json) 
assert slurped.reviewRatingCount*.id == [1, 2, 3] 
関連する問題