zurück
Avatar of Yann Spöri
Autor: Yann Spöri
07. Dezember 2020

Handhabung von JSON

Vor allem beim Testen von Webseiten steht man ab und an vor dem Problem, dass man JSON (=JavaScript Object Notation) parsen muss.

Oft wird hierfür eine JSON Bibliothek herunterladen und dann in das entsprechende Plugin Verzeichnis gelegt. Nach einem Neustart ist es dann möglich, z.B. die Python JSON Bibliothek in Jython Scripten zu benutzen.

In diesem Blogartikel soll allerdings die von QF-Test mitgelieferte JSON Bibliothek beschreiben werden. Diese Bibliothek baut auf der minimal-json-Bibliothek auf und hat den Vorteil, dass:

  • sie bereits mit QF-Test mitgeliefert wird (also nicht zuerst ein Plugin installiert werden muss)
  • Sie sowohl in Jython als auch in Groovy Scripten zur Verfügung steht

Die folgenden Kapitel beschreiben, wie diese Bibliothek zum Parsen und zum Erzeugen von JSON eingesetzt werden kann.

JSON parsen

Der generelle Code um mithilfe dieser Bibliothek ein JSON String zu parsen sieht wie folgt aus:

 

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

 

(Jython Code um einen JSON String zu parsen)

 

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

 

(Groovy Code um einen JSON String zu parsen)

Anschließend kann dann leicht auf die verschiedenen Werte zugegriffen werden, aus denen der JSON String besteht:

 

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

 

(Jython Code um dann auf die verschiedenen Werte zuzugreifen / diese im Terminal auszugeben)

 

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

 

(Groovy Code um dann auf die verschiedenen Werte zuzugreifen / diese im Terminal auszugeben)

In Groovy ist bei JSON Maps, weiterhin folgende Schreibweise möglich:

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

(Groovy Code um dann auf die verschiedenen Werte zuzugreifen / diese im Terminal auszugeben)

wodurch weitere Zeichen im Skript Code eingespart werden können. In diesem Zusammenhang verweise ich auch auf die ?-Schreibweise in Groovy. Diese Schreibweise bietet sich immer an, wenn ein bestimmter Wert im JSON-String vorhanden sein kann aber nicht vorhanden sein muss.

JSON erzeugen

Der generelle Code um mithilfe dieser Bibliothek einen JSON String zu erzeugen sieht wie folgt aus:

 

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

(Jython Code um einen JSON String aus einem Objekt zu erzeugen)

 

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

(Groovy Code um einen JSON String aus einem Objekt zu erzeugen)

Die Kommentarfunktion ist für diesen Artikel deaktiviert.

0 Kommentare