Report-Vorlagen: Daten mit JsonPath selektieren

Report-Vorlagen: Daten mit JsonPath selektieren

Mit der aktuellen Version können neu Daten in einem Bericht innerhalb des JSON Extraxts mit Hilfe von JsonPath selektiert und/oder gefiltert werden.

JsonPath definiert dabei einen eigenen Syntax, um die Daten in der Baumstruktur auszuwählen. Eine Beschreibung zu JsonPath befindet sich in Englisch folgender Seite.

Zudem steht ein Online Tool zur Verfügung, um entsprechende JsonPath Ausdrücke auf Basis eine Json Dokumentes auszuprobieren.

Damit können bspw. JsonPath Ausdrücke auf Basis eines OpenOlitor Json Datenextraktes überprüft werden.

Anmerkung:

Eine Einschränkung zu der beschriebenen JsonPath Funktionalität besteht in OpenOlitor. Elemente innerhalb einer Liste von Elementen (Arrays) müssen immer mit dem Syntax “elemente[0].xxx” oder “element[*].xxx” beschrieben werden. Der Zugriff auf Basis von Punkten wird derzeit nicht unterstützt. Nicht zulässig sind somit bspw. “element.0.xxx” oder “element.*.xxx”

JsonPath Ausdrücke können nun in OpenOlitor dazu verwendet werden, um bspw. Eine zu iterierende Liste zu filtern:

adressen[?(@.id > 100)]

Diese Ausdrücke können ebenfalls mit den Formatierungs- oder Sortierungsinformationen kombiniert werden:

adressen[?(@.id > 100)]| orderBy:"id":DESC

In JsonPath wird mittels ”$” Zeichen auf den Start-Knoten (Root) im Json Dokument verwiesen. Somit beginnen die Ausdrücke jeweils mit “$.” (achtung, mit Punkt!) oder “$[“, wenn es sich um eine Liste von Elementen handelt.
In OpenOlitor hingegen kann auf diesen Startausdruck verzichtet werden. Der danach referenzierte Knoten bezieht sich immer auf die aktuelle Position im Json Dokument.

Soll hingegen unabhängig von der aktuellen Position im Json Dokument explizit auf einen absoluten Pfad im Dokument verwiesen werden, kann die Anweisung mit eben diesem Prefix gestartet werden. Dies ist zum Beispiel notwendig, wenn innerhalb eines dynamisch erzeugten Bereichs auf einen fixen Wert im Json Dokument verwiesen werden soll.

Ein beispiel eines absoluten Pfades kann wie folgt aussehen:

$.adressen[0].strasse