XQuery-Ausdrücke für JSON
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.