Comment utiliser JSON

Fichier 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)

Nous utilisons des cookies "Matomo" pour l'évaluation anonyme de votre visite à note page web. Pour cela nous avons besoin de votre consentement qui est valable pour douze mois.

Configuration de cookies

Cookies fonctionnels

Nous utilisons des cookies fonctionnels pour garantir la fonctionnalité de base du site web.

Cookies de performance et de statistique

Nous utilisons Matomo pour analyser et améliorer notre site web. Des cookies permettent une collection anonyme des informations qui nous aident à vous offrir un visite clair et facile à utiliser de nos pages web.

Détails des cookies
Description Fournisseur Durée de vie Type But
_pk_id Matomo 13 Mois HTTP Contient un identifiant de visiteur unique et pseudonymisé interne à Matomo pour reconnaître les visiteurs qui reviennent.
_pk_ref Matomo 6 Mois HTTP Utilisé pour suivre à partir de quel site Web l'utilisateur anonymisé est arrivé sur notre site Web.
_pk_ses Matomo 1 Jour HTTP Le cookie de session Matomo est utilisé pour suivre les demandes de page du visiteur pendant la session.
_pk_testcookie Matomo Session HTTP Utilisé pour vérifier si le navigateur du visiteur prend en charge les cookies.
_pk_cvar Matomo 30 Minutes HTTP Stocker temporairement les données relatives à la visite.
_pk_hsr Matomo 30 Minutes HTTP Stocker temporairement les données relatives à la visite.