Zum Hauptinhalt springen
Übersetzte Seite

Diese Seite wurde mit KI-Unterstützung aus dem Englischen übersetzt. Bei Abweichungen ist die englische Version maßgeblich.

JSON_EXTRACT

Gibt einen oder mehrere Werte aus einem wohlgeformten JSON-Objekt oder -Array zurück.

Siehe auch:
[SELECT] [DESCRIBE] [JSON_ARRAY_LENGTH] [ Datentypen ]


tipp

Verwenden Sie die Funktion DESCRIBE, um die Datentypen array oder object zu finden, die mit den JSON-Funktionen von StackQL verwendet werden können. Verwenden Sie die Funktion JSON_TYPE, um die Datentypen verschachtelter Objekte oder Array-Elemente zu ermitteln.

hinweis

Die Funktion json_extract ist als Funktion json_extract_path_text implementiert, wenn Sie stackql mit einem postgres-SQL-Backend verwenden

Syntax​

SELECT JSON_EXTRACT(json_array_or_object, json_path[, json_path1, .. json_pathN])
FROM <multipartIdentifier>;

Argumente​

json_array_or_object
Ein JSON-Array oder -Objekt.

json_path
Der JSON-Pfad zu einem Array oder Objekt, das in json_array_or_object enthalten ist. Siehe jsonpath.com.

Wenn ein einzelner json_path angegeben wird, wird ein skalares Ergebnis zurückgegeben, das dem Datentyp des aufgelösten Pfads entspricht.

Wenn mehrere json_path-Argumente angegeben werden, ist das Ergebnis ein Array aus den Objekten, die durch die jeweiligen Pfade aufgelöst werden.

Die Angabe von '$' als Argument json_path gibt das gesamte JSON-Objekt zurück, das der durch das Argument json_array_or_object dargestellten Spalte entspricht.

Rückgabewert(e)​

Eine Zeichenkette, eine Ganzzahl, ein Objekt, ein Array, ein boolescher Wert oder null, abhängig von den als Eingabe übergebenen json_array_or_object und json_path.


Beispiele​

Die jeder Google Compute Engine-Instanz zugeordneten Laufwerksobjekte zurückgeben​

SELECT name, json_extract(disks, '$') as disks
FROM google.compute.instances
WHERE project = 'stackql-demo'
AND zone = 'australia-southeast1-a';

Den Gerätenamen und die Größe des ersten an jede Google Compute Engine-Instanz angehängten Laufwerks zurückgeben​

SELECT name, json_extract(disks, '$[0].deviceName') as device_name,
json_extract(disks, '$[0].diskSizeGb') as disk_size
FROM google.compute.instances
WHERE project = 'stackql-demo'
AND zone = 'australia-southeast1-a';

Die Netzwerkstufe der ersten an jede Google Compute Engine-Instanz angehängten NIC zurückgeben​

SELECT name, json_extract(networkInterfaces, '$[0].accessConfigs[0].networkTier') as network_tier
FROM google.compute.instances
WHERE project = 'stackql-demo'
AND zone = 'australia-southeast1-a';

Eine Liste der Scopes zurückgeben, die dem ersten Dienstkonto jeder Google Compute Engine-Instanz zugeordnet sind​

SELECT name, json_extract(serviceAccounts, '$[0].scopes') as scopes
FROM google.compute.instances
WHERE project = 'stackql-demo'
AND zone = 'australia-southeast1-a';
/* returns a list for each service account */

Weitere Informationen finden Sie unter https://www.sqlite.org/json1.html#jex