

 Amazon Redshift unterstützt UDFs ab Patch 198 nicht mehr die Erstellung von neuem Python. Das bestehende Python UDFs wird bis zum 30. Juni 2026 weiterhin funktionieren. Weitere Informationen finden Sie im [Blog-Posting](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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\$1EXTRACT\$1PATH\$1TEXT
<a name="JSON_EXTRACT_PATH_TEXT"></a>

**Anmerkung**  
JSON\$1PARSE und die zugehörigen Funktionen analysieren JSON-Werte als SUPER, was Amazon Redshift effizienter analysiert als VARCHAR.  
Anstatt JSON\$1EXTRACT\$1PATH\$1TEXT zu verwenden, empfehlen wir Ihnen, Ihre JSON-Zeichenketten mit [Funktion JSON\$1PARSE](JSON_PARSE.md) zu analysieren, um einen SUPER-Wert zu erhalten. Fragen Sie dann das gewünschte Element mithilfe der `value.attribute`-Syntax ab. Weitere Informationen zum Abfragen von Array-Elementen in SUPER-Werten finden Sie unter [Abfragen halbstrukturierter Daten](query-super.md).

Die Funktion JSON\$1EXTRACT\$1PATH\$1TEXT 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\$1EXTRACT\$1PATH\$1TEXT `NULL` zurück.

Wenn das Argument *null\$1if\$1invalid* auf `TRUE` gesetzt und die JSON-Zeichenfolge ungültig ist, gibt die Funktion anstatt eines Fehlers `NULL` zurück.

JSON\$1EXTRACT\$1PATH\$1TEXT hat eine maximale Datengröße von 64 KB. Wenn also ein JSON-Datensatz größer als 64 KB ist, führt die Verarbeitung mit JSON\$1EXTRACT\$1PATH\$1TEXT zu einem Fehler. 

Informationen zu zusätzlichen JSON-Funktionen finden Sie unter [JSON-Funktionen](json-functions.md). Weitere Informationen zur Arbeit mit JSON finden Sie unter [COPY von JSON-Format](copy-usage_notes-copy-from-json.md).

## Syntax
<a name="JSON_EXTRACT_PATH_TEXT-synopsis"></a>

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

## Argumente
<a name="JSON_EXTRACT_PATH_TEXT-arguments"></a>

 *json\$1string*  
Eine korrekt formatierte JSON-Zeichenfolge.

*path\$1elem*  
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\$1if\$1invalid*  
(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](copy-usage_notes-copy-from-json.md#copy-usage-json-escape-characters).

## Rückgabetyp
<a name="JSON_EXTRACT_PATH_TEXT-return"></a>

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

## Beispiele
<a name="JSON_EXTRACT_PATH_TEXT-examples"></a>

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\$1if\$1invalid* auf *TRUE* zu setzen, so dass 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                   |
+------------------------+
```

Betrachten Sie das folgende Beispiel, bei dem den Wert für den Pfad `'farm', 'barn', 'color'` zurückgegeben wird, 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 mit SUPER-Werten aufgefüllt. Anschließend wird der Wert für den Pfad `'f2'` für beide Zeilen zurückgegeben.

```
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           |
```

Betrachten Sie die folgenden Beispiele: Das angegebene *path\$1elem* ist NULL, so dass JSON\$1EXTRACT\$1PATH\$1TEXT unabhängig vom Wert aller anderen Parameter NULL zurückgibt. 

```
--Statement where path_elem is NULL and json_string is valid JSON.
SELECT JSON_EXTRACT_PATH_TEXT('{"f2":{"f3":1},"f4":{"f5":99,"f6":"star"}}',NULL);

 json_extract_path_text
------------------------
                   NULL

--Statement where only one path_elem is NULL.
SELECT JSON_EXTRACT_PATH_TEXT('{"f2":{"f3":1},"f4":{"f5":99,"f6":"star"}}','f4',NULL);

 json_extract_path_text
------------------------
                   NULL
                   
--Statement where path_elem is NULL and json_string is invalid JSON.
SELECT json_extract_path_text('invalid_json', NULL);

 json_extract_path_text
------------------------
                   NULL

--Statement where path_elem is NULL and null_if_invalid is FALSE.
SELECT json_extract_path_text(NULL, 0, FALSE);

 json_extract_path_text
------------------------
                   NULL
```

Betrachten Sie die folgenden Beispiele: Wenn *null\$1if\$1invalid* TRUE ist, gibt JSON\$1EXTRACT\$1PATH\$1TEXT NULL zurück, wenn *json\$1string* ein ungültiges JSON ist. Wenn *null\$1if\$1invalid* FALSE ist oder nicht gesetzt ist, gibt die Funktion einen Fehler zurück, wenn *json\$1string* ungültig ist.

```
--Statement with invalid JSON where null_if_invalid is TRUE.
SELECT json_extract_path_text('invalid_json', 0, TRUE);

 json_extract_path_text
------------------------
                   NULL
                                                    
--Statement with invalid JSON where null_if_invalid is FALSE.
SELECT json_extract_path_text('invalid_json', 0, FALSE);

ERROR:  JSON parsing error
```

Betrachten Sie die folgenden Beispiele, in denen *json\$1string* gültiges JSON ist und *path\$1elem* sich auf einen JSON-`null`Wert bezieht. In diesem Fall gibt JSON\$1EXTRACT\$1PATH\$1TEXT NULL zurück. Wenn *path\$1elem* auf einen nicht existierenden Wert verweist, gibt JSON\$1EXTRACT\$1PATH\$1TEXT ebenfalls NULL zurück, unabhängig vom Wert von *null\$1if\$1invalid*.

```
--Statement selecting a null value.
SELECT json_extract_path_text('[null]', 0);

  json_extract_path_text  
-------------------------
                    NULL   
                             
--Statement selecting a non-existing value.               
SELECT json_extract_path_text('{}', 'a');
       
  json_extract_path_text  
-------------------------
                    NULL
```