

 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\$1ARRAY\$1ELEMENT\$1TEXT“
<a name="JSON_EXTRACT_ARRAY_ELEMENT_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\$1ARRAY\$1ELEMENT\$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 anhand seines Array-Index ab und verwenden Sie dabei die `value[element position]` Syntax. Weitere Informationen zum Abfragen von Array-Elementen in SUPER-Werten finden Sie unter [Abfragen halbstrukturierter Daten](query-super.md).

Die Funktion JSON\$1EXTRACT\$1ARRAY\$1ELEMENT\$1TEXT gibt ein JSON-Array-Element im äußersten Array einer JSON-Zeichenfolge unter Verwendung eines nullbasierten Index zurück. Das erste Element in einem Array befindet sich an Position 0. Wenn der Index negativ ist oder sich außerhalb des Bereichs befindet, gibt JSON\$1EXTRACT\$1ARRAY\$1ELEMENT\$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.

Weitere Informationen finden Sie unter [JSON-Funktionen](json-functions.md). 

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

```
JSON_EXTRACT_ARRAY_ELEMENT_TEXT('json string', pos [, null_if_invalid ] )
```

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

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

*pos*  
Eine `INTEGER`, die unter Verwendung eines nullbasierten Array-Index den Index des Array-Elements darstellt, das zurückgegeben werden soll.

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

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

`VARCHAR`  
Eine `VARCHAR`-Zeichenfolge, die das JSON-Array-Element darstellt, das von *pos* referenziert wird.

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

Verwenden Sie das folgende Beispiel, um ein Array-Element an Position 2 zurückzugeben, das das dritte Element eines null-basierten Array-Index ist. 

```
SELECT JSON_EXTRACT_ARRAY_ELEMENT_TEXT('[111,112,113]', 2);
 
+---------------------------------+
| json_extract_array_element_text |
+---------------------------------+
|                             113 |
+---------------------------------+
```

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

```
SELECT JSON_EXTRACT_ARRAY_ELEMENT_TEXT('["a",["b",1,["c",2,3,null,]]]',1);
 
ERROR: invalid json array object ["a",["b",1,["c",2,3,null,]]]
```

Verwenden Sie das folgende Beispiel, um *null\$1if\$1invalid* auf *true* zu setzen, sodass die Anweisung anstatt eines Fehlers `NULL` zurückgibt, wenn die JSON-Eingabezeichenfolge ungültig ist.

```
SELECT JSON_EXTRACT_ARRAY_ELEMENT_TEXT('["a",["b",1,["c",2,3,null,]]]',1,true);
 
+---------------------------------+
| json_extract_array_element_text |
+---------------------------------+
| NULL                            |
+---------------------------------+
```

Betrachten Sie die folgenden Beispiele: Wenn die bereitgestellte JSON-Zeichenfolge oder der Index NULL ist, gibt JSON\$1EXTRACT\$1ARRAY\$1ELEMENT\$1TEXT NULL zurück, unabhängig vom Wert anderer Parameter. 

```
--Statement where json_string is NULL.
SELECT json_extract_array_element_text(NULL, 0)

 json_extract_array_element_text
---------------------------------
                            NULL

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

 json_extract_array_element_text
---------------------------------
                            NULL

--Statement where json_string is NULL and null_if_invalid is FALSE.
SELECT json_extract_array_element_text(NULL, 0, FALSE);

 json_extract_array_element_text
---------------------------------
                            NULL
```

Betrachten Sie die folgenden Beispiele: Wenn *null\$1if\$1invalid* TRUE ist, gibt JSON\$1EXTRACT\$1ARRAY\$1ELEMENT\$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_array_element_text('invalid_json', 0, TRUE);

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

ERROR:  JSON parsing error
```

Betrachten Sie das folgende Beispiel, in dem *json\$1string* gültiges JSON ist und *pos* auf einen JSON-`null`Wert verweist. In diesem Fall gibt JSON\$1EXTRACT\$1ARRAY\$1ELEMENT\$1TEXT NULL zurück, unabhängig vom Wert von *null\$1if\$1invalid*.

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

  json_extract_array_element_text 
----------------------------------
                             NULL
```