

 Amazon Redshift ne prendra plus en charge la création de nouveaux Python à UDFs partir du patch 198. UDFs Le Python existant continuera de fonctionner jusqu'au 30 juin 2026. Pour plus d’informations, consultez le [ billet de blog ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

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

**Note**  
JSON\$1PARSE et ses fonctions associées analysent les valeurs JSON en tant que SUPER, qu’Amazon Redshift analyse plus efficacement que VARCHAR.  
Au lieu d’utiliser JSON\$1EXTRACT\$1ARRAY\$1ELEMENT\$1TEXT, nous vous recommandons d’analyser vos chaînes JSON en utilisant [Fonction JSON\$1PARSE](JSON_PARSE.md) pour obtenir une valeur SUPER. Ensuite, interrogez l’élément souhaité à l’aide de son index de tableau, en utilisant la syntaxe `value[element position]`. Pour plus d’informations sur l’interrogation des éléments d’un tableau dans des valeurs SUPER, consultez [Interrogation de données semi-structurées](query-super.md).

La fonction JSON\$1EXTRACT\$1ARRAY\$1ELEMENT\$1TEXT renvoie un élément de tableau JSON dans le tableau le plus externe d’une chaîne JSON, à l’aide d’un index de base zéro. Le premier élément d’un tableau est à la position 0. Si l’index est négatif ou hors limites, JSON\$1EXTRACT\$1ARRAY\$1ELEMENT\$1TEXT renvoie `NULL`. Si l’argument *null\$1if\$1invalid* a la valeur `TRUE` et que la chaîne JSON n’est pas valide, la fonction renvoie `NULL` au lieu de renvoyer une erreur.

Pour plus d’informations, consultez [Fonctions JSON](json-functions.md). 

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

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

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

 *json\$1string*  
Chaîne JSON au bon format.

*pos*  
`INTEGER` représentant l’index de l’élément de tableau à renvoyer, à l’aide d’un index de tableau de base zéro.

*null\$1if\$1invalid*  
(Facultatif) Valeur `BOOLEAN` qui spécifie s’il faut renvoyer `NULL` quand la chaîne JSON en entrée n’est pas valide au lieu de renvoyer une erreur. Pour renvoyer `NULL` si la chaîne JSON n’est pas valide, spécifiez `true` (`t`). Pour renvoyer une erreur si la chaîne JSON n’est pas valide, spécifiez `false` (`f`). La valeur par défaut est `false`.

## Type de retour
<a name="JSON_EXTRACT_ARRAY_ELEMENT_TEXT-return"></a>

`VARCHAR`  
Chaîne `VARCHAR` représentant l’élément de tableau JSON référencé par *pos*.

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

Pour renvoyer l’élément de tableau à la position 2, qui est le troisième élément d’un index de tableau de base zéro, utilisez l’exemple suivant. 

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

Pour renvoyer une erreur si la chaîne JSON n’est pas valide, utilisez l’exemple suivant.

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

Pour définir *null\$1if\$1invalid* sur *true* afin que l’instruction renvoie `NULL` au lieu de renvoyer une erreur en cas de chaîne JSON non valide, utilisez l’exemple suivant.

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

Considérez les exemples d’instructions suivants. Si la chaîne JSON ou l’index sont NULL, JSON\$1EXTRACT\$1ARRAY\$1ELEMENT\$1TEXT renvoie NULL quelle que soit la valeur des autres paramètres. 

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

Considérez les exemples d’instructions suivants. Lorsque *null\$1if\$1invalid* est TRUE, JSON\$1EXTRACT\$1ARRAY\$1ELEMENT\$1TEXT renvoie NULL lorsque *json\$1string* est un JSON non valide. Si *null\$1if\$1invalid* est FALSE ou n’est pas défini, la fonction renvoie une erreur lorsque *json\$1string* n’est pas valide.

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

Prenons l’exemple suivant, où *json\$1string* est un JSON valide et *pos* fait référence à une valeur JSON `null`. Dans ce cas, JSON\$1EXTRACT\$1ARRAY\$1ELEMENT\$1TEXT renvoie NULL, quelle que soit la valeur de *null\$1if\$1invalid*.

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

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