Altova XMLSpy 2024 Professional Edition

JSON-Dokumente können durch Eingabe eines XPath/XQuery 3.1-Abfrageausdrucks im XPath/XQuery-Ausgabefenster (siehe Abbildung unten) abgefragt werden.

Click to expand/collapse

Um einen Ausdruck anhand eines JSON-Dokuments auszuwerten, gehen Sie folgendermaßen vor:

 

1.Wählen Sie entweder das XPath 3.1- oder das XQuery 3.1-Symbol aus.

2.Stellen Sie sicher, dass sich das Fenster im JSON-Auswertungsmodus befindet.

3.Geben Sie den XPath 3.1- oder XQuery 3.1-Ausdruck ein.

4.Klicken Sie (links in der Symbolleiste) auf Auswertung starten.

 

XQuery 3.1-Ausdrücke für JSON

Da in JSON-Datenstrukturen oft Objekte und Arrays verwendet werden, wird zum Identifizieren von Nodes in JSON-Objekten (bei denen es sich aus Sicht von XQuery im Grunde um Zuordnungen handelt) und JSON-Arrays der XQuery 3.1 Lookup-Operator ? verwendet. Diese Methode der Node-Suche unterscheidet sich von der Methode, mit der Pfadausdrücke zum Suchen von Nodes in XML-Dokumenten geschrieben werden. In diesen Dokumenten werden Schritte in einem Pfadausdruck (z.B: items/*) mit Hilfe des Schrägstrich-Operators / verbunden. In XQuery-Ausdrücken für JSON wird der Schrägstrich-Operator nicht zur Suche von Nodes verwendet.

 

Beispiele für XQuery-Ausdrücke für JSON

 

?items?*

Bedeutet: Suche den Child-Node items und anschließend alle diesem untergeordnete Nodes. Beachten Sie, dass erwartet wird, dass items ein Child-Node des Kontext-Node ist.

 

?Artists?1?Albums?2?Name

Bedeutet: Suche den Child-Node Artists und anschließend dessen ersten Child-Node. Suche innerhalb dieses Node den Child Node Albums und anschließend dessen zweiten Child Node. Gib nun den Node Name dieses zweiten Child Node zurück.

 

?Tracks?*[contains(?Writer, 'Brian')]

Bedeutet: Suche den Child Node Tracks und anschließend alle seine untergeordneten Nodes. Suche während der Suche der untergeordneten Nodes die einzelnen Writer Node Children und wähle nur diejenigen aus, die den String 'Brian' enthalten. Beachte, dass dieser Ausdruck drei Lookup-Operatoren enthält. Jeder davon wird in einem neue Schritt, in dem ein Nodeset gesucht werden muss, verwendet.

 

?Artists?*[?Name="Queen"]?Albums?*?Name

Bedeutet: Suche im Root-Objekt den Child Node Artists und anschließend alle dessen Children, die einen Name Node mit dem Wert "Queen" haben. Suche in diesen Nodes alle untergeordneten Album-Nodes und anschließend deren untergeordnete Nodes. Suche in diesen untergeordneten Nodes die jeweiligen Name Nodes und gib diese zurück. In der Abbildung unten sehen Sie diesen Ausdruck im XPath/XQuery-Fenster zusammen mit dem JSON-Zieldokument in der JSON Grid-Ansicht.

 

inc-XQueryExpForJSON

 

Ergebnisbereich für die JSON-Auswertung

Im Ergebnisbereich werden die ausgewählten JSON-Komponenten auf der linken Seite des Ergebnisbereichs fett angezeigt und der Wert der Komponente wird auf der rechten Seite des Bereichs angezeigt. In der Abbildung unten werden die Ergebnisse fett angezeigt. Das Array wurde erweitert, sodass Sie dessen Mitglieder sehen.

Click to expand/collapse

Zuordnungen und Arrays werden je nachdem, ob die Symbolleisten-Schaltfläche Vollständiges Ergebnis anzeigen aktiviert oder deaktiviert ist, im Kurzformat oder im ausführlichen Format angezeigt. Die Zuordnungen und Arrays auf der linken Seite des Bereichs können durch Klick auf das entsprechende Plus-Symbol erweitert werden.

 

© 2017-2023 Altova GmbH