Handhabung von JSON

JSON Datei

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)

Wir verwenden Cookies zur anonymisierten Auswertung Ihres Besuchs auf unserer Webseite durch "Matomo". Dafür benötigen wir Ihr Einverständnis, welches für zwölf Monate gilt.

Cookie-Konfiguration

Funktionale Cookies

Wir verwenden funktionale Cookies, um die Basisfunktionalität der Webseite zu gewährleisten.

Performance- und Statistik-Cookies

Wir verwenden Matomo zur Analyse und Optimierung unserer Webseite. Cookies erlauben eine anonyme Erfassung der Informationen und helfen uns, Ihnen einen benutzerfreundlichen Besuch unserer Webseite zu bieten.

Cookie-Details
Bezeichnung Anbieter Gültigkeitsdauer Typ Verwendung
_pk_id Matomo 13 Monate HTTP Enthält eine eindeutige jedoch pseudonymisierte Matomo-interne Besucher-ID zur Erkennung wiederkehrender Besucher.
_pk_ref Matomo 6 Monate HTTP Wird verwendet, um zu tracken, von welcher Website der anonymisierte Benutzer auf die Website gekommen ist.
_pk_ses Matomo 1 Tag HTTP Das Session Cookie von Matomo wird verwendet, um die Seitenanforderungen des Besuchers während der Sitzung zu verfolgen.
_pk_testcookie Matomo Session HTTP Zur Prüfung, ob der Browser des Besuchers Cookies unterstützt.
_pk_cvar Matomo 30 Minuten HTTP Kurzzeit-Cookie für temporäre Besuchsdatenspeicherung.
_pk_hsr Matomo 30 Minuten HTTP Kurzzeit-Cookie für temporäre Besuchsdatenspeicherung.