Die Funktion JSON_EXTRACT_PATH_TEXT - Amazon Redshift

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Die Funktion JSON_EXTRACT_PATH_TEXT

Die Funktion JSON_EXTRACT_PATH_TEXT gibt den Wert für das Schlüssel-Wert-Paar zurück, auf das in einer Reihe von Pfadelementen in einer JSON-Zeichenfolge verwiesen wird. Der JSON-Pfad kann bis zu einer Tiefe von fünf Ebenen verschachtelt sein. Pfadelemente unterscheiden zwischen Groß- und Kleinschreibung. Wenn in der JSON-Zeichenfolge ein Pfadelement nicht vorhanden ist, gibt JSON_EXTRACT_PATH_TEXT NULL zurück.

Wenn das Argument null_if_invalid auf true gesetzt und die JSON-Zeichenfolge ungültig ist, gibt die Funktion anstatt eines Fehlers NULL zurück.

Informationen zu zusätzlichen JSON-Funktionen finden Sie unter JSON-Funktionen. Weitere Informationen zur Arbeit mit JSON finden Sie unter COPY von JSON-Format.

Syntax

JSON_EXTRACT_PATH_TEXT('json_string', 'path_elem' [,'path_elem'[, …] ] [, null_if_invalid ] )

Argumente

json_string

Eine korrekt formatierte JSON-Zeichenfolge.

path_elem

Ein Pfadelement in einer JSON-Zeichenfolge. Es ist mindestens ein Pfadelement erforderlich. Es können zusätzliche Pfadelemente angegeben werden, bis zu einer Tiefe von fünf Ebenen.

null_if_invalid

(Optional) Ein BOOLEAN-Wert, der angibt, ob anstatt eines Fehlers NULL zurückgegeben wird, wenn die JSON-Eingabezeichenfolge ungültig ist. Geben Sie true (t) an, damit NULL zurückgegeben wird, wenn die JSON-Eingabezeichenfolge ungültig ist. Geben Sie false (f) an, damit ein Fehler zurückgegeben wird, wenn die JSON-Eingabezeichenfolge ungültig ist. Der Standardwert ist false.

Amazon Redshift erkennt in einer JSON-Zeichenfolge \n als Zeichen für neue Zeilen und \t als Tabulatorzeichen. Um einen Backslash zu laden, muss ein Backslash als Escape-Zeichen verwendet werden (\\). Weitere Informationen finden Sie unter Escape-Zeichen in JSON.

Rückgabetyp

VARCHAR

Eine VARCHAR-Zeichenfolge, die den JSON-Wert darstellt, der von den Pfadelementen referenziert wird.

Beispiele

Verwenden Sie das folgende Beispiel, um den Wert für den Pfad 'f4', 'f6' zurückzugeben.

SELECT JSON_EXTRACT_PATH_TEXT('{"f2":{"f3":1},"f4":{"f5":99,"f6":"star"}}','f4', 'f6'); +------------------------+ | json_extract_path_text | +------------------------+ | star | +------------------------+

Verwenden Sie das folgende Beispiel, um einen Fehler zurückzugeben, weil die JSON-Eingabezeichenfolge ungültig ist.

SELECT JSON_EXTRACT_PATH_TEXT('{"f2":{"f3":1},"f4":{"f5":99,"f6":"star"}','f4', 'f6'); ERROR: invalid json object {"f2":{"f3":1},"f4":{"f5":99,"f6":"star"}

Verwenden Sie das folgende Beispiel, um null_if_invalid auf true zu setzen, sodass die Anweisung bei einem ungültigen JSON anstatt eines Fehlers NULL zurückgibt.

SELECT JSON_EXTRACT_PATH_TEXT('{"f2":{"f3":1},"f4":{"f5":99,"f6":"star"}','f4', 'f6',true); +------------------------+ | json_extract_path_text | +------------------------+ | NULL | +------------------------+

Verwenden Sie das folgende Beispiel, um den Wert für den Pfad 'farm', 'barn', 'color' zurückgegeben, wobei sich der abgerufene Wert auf der dritten Ebene befindet. Dieses Beispiel ist mit einem JSON-Lint-Tool formatiert, um das Lesen zu vereinfachen.

SELECT JSON_EXTRACT_PATH_TEXT('{ "farm": { "barn": { "color": "red", "feed stocked": true } } }', 'farm', 'barn', 'color'); +------------------------+ | json_extract_path_text | +------------------------+ | red | +------------------------+

Verwenden Sie das folgende Beispiel, um NULL zurückzugeben, da das 'color'-Element fehlt. Dieses Beispiel ist mit einem JSON-Lint-Tool formatiert.

SELECT JSON_EXTRACT_PATH_TEXT('{ "farm": { "barn": {} } }', 'farm', 'barn', 'color'); +------------------------+ | json_extract_path_text | +------------------------+ | NULL | +------------------------+

Wenn das JSON-Format gültig ist, wird beim Versuch, ein fehlendes Element zu extrahieren, NULL zurückgegeben.

Verwenden Sie das folgende Beispiel, um den Wert für den Pfad 'house', 'appliances', 'washing machine', 'brand' zurückzugeben.

SELECT JSON_EXTRACT_PATH_TEXT('{ "house": { "address": { "street": "123 Any St.", "city": "Any Town", "state": "FL", "zip": "32830" }, "bathroom": { "color": "green", "shower": true }, "appliances": { "washing machine": { "brand": "Any Brand", "color": "beige" }, "dryer": { "brand": "Any Brand", "color": "white" } } } }', 'house', 'appliances', 'washing machine', 'brand'); +------------------------+ | json_extract_path_text | +------------------------+ | Any Brand | +------------------------+

Im folgenden Beispiel wird eine Beispieltabelle erstellt und sie mit SUPER-Werten aufgefüllt. Anschließend wird der Wert für den Pfad für beide Zeilen zurückgegeben. 'f2'

CREATE TABLE json_example(id INT, json_text SUPER); INSERT INTO json_example VALUES (1, JSON_PARSE('{"f2":{"f3":1},"f4":{"f5":99,"f6":"star"}}')), (2, JSON_PARSE('{ "farm": { "barn": { "color": "red", "feed stocked": true } } }')); SELECT * FROM json_example; id | json_text ------------+-------------------------------------------- 1 | {"f2":{"f3":1},"f4":{"f5":99,"f6":"star"}} 2 | {"farm":{"barn":{"color":"red","feed stocked":true}}} SELECT id, JSON_EXTRACT_PATH_TEXT(JSON_SERIALIZE(json_text), 'f2') FROM json_example; id | json_text ------------+-------------------------------------------- 1 | {"f3":1} 2 |