2017-01-07 4 views
2

Ich benötige ein wenig Anleitung beim Versuch, eine Liste von Werten aus einer JSON-Antwort zu finden.Wie man durch JSON-Antwort iteriert

Ich habe einen JSON, die unten wie folgt aussieht:

"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 
     } 
... 

Jetzt habe ich eine Prüfung durchgeführt, ‚ReviewRatingCount‘, um sicherzustellen, ist nicht gleich null:

def reviewratingcount = json.reviewratingcount 
assert reviewratingcount != null 

Was ich tun möchte, ist Stellen Sie sicher, dass die IDs in diesem 'reviewRatingCount' gleich 1, 2, 3 sind. Also virtuell möchte ich, dass es die ids innerhalb des reviewRatingCount durchläuft und sicherstellt, dass alle IDs die korrekten Werte enthalten. Wie wird dies in groovy Scripting angewendet, so dass ich es nicht nur auf dieses Beispiel anwenden kann, sondern auch für die anderen Überprüfungen wie "Name"?

Vielen Dank.

Antwort

3

Keine Notwendigkeit, iterieren * Operator:

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] 
Verwandte Themen