3 votes

Comment utiliser une variable pour extraire une valeur de la réponse JSON en utilisant Groovy ?

J'essaie d'extraire la marque de vélo "Cannondale" de la réponse JSON en utilisant l'emplacement de la valeur stockée dans une variable appelée "jsonFieldName".

Alternativement, je suis capable d'extraire avec succès la valeur de la marque en utilisant la syntaxe suivante :

def brand = json.store.bicycle.brand

Cependant, je veux conserver l'emplacement de l'élément dans une variable. La raison en est que je veux pouvoir itérer de multiples assertions sur la réponse Json dans le cadre de ma suite d'automatisation.

Quelqu'un peut-il me conseiller sur la manière de procéder ?

Voici l'extrait que j'ai actuellement mis en place pour stocker l'emplacement dans une variable. Mais cela ne fonctionne pas et renvoie toujours la marque comme 'Null' :( Merci.

def response = ('''{
   "store": {
  "book": [
     {
        "title": "Sword of Honour",
        "category": "fiction",
        "author": "Evelyn Waugh",
        "@price": 12.99
     },
     {
        "title": "Moby Dick",
        "category": "fiction",
        "author": "Herman Melville",
        "isbn": "0-553-21311-3",
        "@price": 8.99
     },
     {
        "title": "Sayings of the Century",
        "category": "reference",
        "author": "Nigel Rees",
        "@price": 8.95
     },
     {
        "title": "The Lord of the Rings",
        "category": "fiction",
        "author": "J. R. R. Tolkien",
        "isbn": "0-395-19395-8",
        "@price": 22.99
     }
  ],
  "bicycle": {
     "brand": "Cannondale",
     "color": "red",
     "price": 19.95
  }
 }
}''').toString()

//store location of json property I want to extract in property called jsonFieldName
def jsonFieldName = "store.bicycle.brand"
def json = new JsonSlurper().parseText (response)
//perform extraction
brand = json."${jsonFieldName}"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X