

 Amazon Redshift tidak akan lagi mendukung pembuatan Python UDFs baru mulai Patch 198. Python yang ada UDFs akan terus berfungsi hingga 30 Juni 2026. Untuk informasi lebih lanjut, lihat [posting blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Fungsi JSON\$1EXTRACT\$1ARRAY\$1ELEMENT\$1TEXT
<a name="JSON_EXTRACT_ARRAY_ELEMENT_TEXT"></a>

**catatan**  
JSON\$1PARSE dan fungsi terkaitnya mengurai nilai JSON sebagai SUPER, yang diurai Amazon Redshift lebih efisien daripada VARCHAR.  
Alih-alih menggunakan JSON\$1EXTRACT\$1ARRAY\$1ELEMENT\$1TEXT, kami sarankan Anda mengurai string JSON Anda menggunakan untuk mendapatkan nilai SUPER. [Fungsi JSON\$1PARSE](JSON_PARSE.md) Kemudian, kueri elemen yang Anda inginkan menggunakan indeks array, menggunakan `value[element position]` sintaks. Untuk informasi lebih lanjut tentang menanyakan elemen array dalam nilai SUPER, buka. [Meminta data semi-terstruktur](query-super.md)

Fungsi JSON\$1EXTRACT\$1ARRAY\$1ELEMENT\$1TEXT mengembalikan elemen array JSON dalam array terluar dari string JSON, menggunakan indeks berbasis nol. Elemen pertama dalam array berada pada posisi 0. Jika indeks negatif atau di luar batas, JSON\$1EXTRACT\$1ARRAY\$1ELEMENT\$1TEXT kembali. `NULL` Jika argumen *null\$1if\$1invalid* disetel ke `TRUE` dan string JSON tidak valid, fungsi kembali alih-alih mengembalikan kesalahan. `NULL`

Untuk informasi selengkapnya, lihat [Fungsi JSON](json-functions.md). 

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

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

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

 *json\$1string*  
String JSON yang diformat dengan benar.

*pos*  
Sebuah `INTEGER` mewakili indeks dari elemen array yang akan dikembalikan, menggunakan indeks array berbasis nol.

*null\$1if\$1invalid*  
(Opsional) `BOOLEAN` Nilai yang menentukan apakah akan kembali `NULL` jika input JSON string tidak valid alih-alih mengembalikan kesalahan. Untuk kembali `NULL` jika JSON tidak valid, tentukan `true` (). `t` Untuk mengembalikan kesalahan jika JSON tidak valid, tentukan `false` (). `f` Nilai default-nya `false`.

## Jenis pengembalian
<a name="JSON_EXTRACT_ARRAY_ELEMENT_TEXT-return"></a>

`VARCHAR`  
*Sebuah `VARCHAR` string yang mewakili elemen array JSON direferensikan oleh pos.*

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

Untuk mengembalikan elemen array pada posisi 2, yang merupakan elemen ketiga dari indeks array berbasis nol, gunakan contoh berikut. 

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

Untuk mengembalikan kesalahan karena JSON tidak valid, gunakan contoh berikut.

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

Untuk menyetel *null\$1if\$1invalid* ke *true*, sehingga pernyataan kembali `NULL` alih-alih mengembalikan kesalahan untuk JSON yang tidak valid, gunakan contoh berikut.

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

Perhatikan contoh pernyataan berikut. Jika string JSON yang disediakan atau indeks adalah NULL, JSON\$1EXTRACT\$1ARRAY\$1ELEMENT\$1TEXT mengembalikan NULL terlepas dari nilai parameter lainnya. 

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

Perhatikan contoh pernyataan berikut. *Ketika *null\$1if\$1invalid TRUE, JSON\$1EXTRACT\$1ARRAY\$1ELEMENT\$1TEXT mengembalikan NULL ketika json\$1string JSON tidak valid*.* *Jika *null\$1if\$1invalid adalah FALSE* atau tidak disetel, fungsi mengembalikan kesalahan ketika json\$1string tidak valid.*

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

Perhatikan contoh berikut, di mana *json\$1string* adalah JSON yang valid, dan *pos mengacu pada nilai* JSON. `null` *Dalam hal ini, JSON\$1EXTRACT\$1ARRAY\$1ELEMENT\$1TEXT mengembalikan NULL, terlepas dari nilai null\$1if\$1invalid.*

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

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