back
Avatar of Yann Spöri
Author: Yann Spöri
07. décembre 2020

Comment utiliser JSON

En particulier lorsque vous testez des sites Web, vous êtes de temps en temps confronté au problème de l'analyse des chaînes JSON (=JavaScript Object Notation).

Souvent, pour cela, une bibliothèque JSON est téléchargée et placée dans le répertoire du plugin correspondant. Après un redémarrage, il est alors possible d'utiliser, par exemple, la bibliothèque Python JSON dans des scripts Jython.

Dans cet article de blog, cependant, la bibliothèque JSON fournie par QF-Test devrait être décrite. Cette bibliothèque est basée sur la bibliothèque minimal-json-library et a l'avantage de :

  • il est déjà fourni avec QF-Test (il ne s'agit donc pas d'un plugin à installer en premier)
  • Il est disponible dans les scripts Jython et Groovy.

Les chapitres suivants décrivent comment cette bibliothèque peut être utilisée pour l'analyse syntaxique JSON et la génération JSON.

JSON parsing

Le code général pour analyser une chaîne JSON en utilisant cette bibliothèque ressemble à ceci :

 

from de.qfs.lib.json import Json
jsonStr = """{"a" : 1, "b" : "zzz", "c" : [1,2,3]}"""
json = Json.parse(jsonStr)

 

(Code Jython pour analyser une chaîne Jython)

 

import de.qfs.lib.json.Json
def jsonStr = """{"a" : 1, "b" : "zzz", "c" : [1,2,3]}"""
def json = Json.parse(jsonStr)

 

(Code Groovy pour analyser une chaîne Jython)

Ensuite, vous pouvez facilement accéder aux différentes valeurs définies dans la chaîne JSON :

 

qf.println(json["a"])           # Output: 1
qf.println(json["b"])           # Output: zzz
qf.println(json["c"])           # Output: [1,2,3]
qf.println(json["c"][0])        # Output: 1
qf.println(json["c"][1])        # Output: 2
qf.println(json["c"][2])        # Output: 3

 

(Code Jython afin d'accéder aux différentes valeurs / les sortir sur le terminal)

 

qf.println(json["a"])           // Output: 1
qf.println(json["b"])           // Output: zzz
qf.println(json["c"])           // Output: [1,2,3]
qf.println(json["c"][0])        // Output: 1
qf.println(json["c"][1])        // Output: 2
qf.println(json["c"][2])        // Output: 3

 

(Code Groovy afin d'accéder aux différentes valeurs / les sortir sur le terminal)

En Groovy, la notation suivante est également possible pour les cartes JSON :

qf.println(json.a) // Output: 1

(Code Groovy afin d'accéder aux différentes valeurs / les sortir sur le terminal)

ce qui permet de "sauvegarder" d'autres caractères dans le script. Dans ce contexte, permettez-moi également d'attirer l'attention sur la fonction ?-Notation de Groovy, qui est utile lorsqu'une certaine valeur peut être présente dans la chaîne JSON mais ne doit pas l'être.

Générer JSON

Le code général pour générer une chaîne JSON en utilisant cette bibliothèque ressemble à ceci :

 

from de.qfs.lib.json import JsonBuilder
obj = { "a" : [1,2,3,4] }
jsonStr = JsonBuilder.toJsonValue(obj)

(Code Jython pour générer une chaîne JSON à partir d'un objet)

 

import de.qfs.lib.json.JsonBuilder
def obj = [ "a" : [1,2,3,4] ]
def jsonStr = JsonBuilder.toJsonValue(obj)

(Code Groovy pour générer une chaîne JSON à partir d'un objet)
New comment
( Will be displayed on the page )
( Will not be displayed on the page )

0 comments