

 Amazon Redshift dejará de admitir la creación de nuevas UDF de Python a partir del parche 198. Las UDF de Python existentes seguirán funcionando hasta el 30 de junio de 2026. Para obtener más información, consulte la [publicación del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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

**nota**  
JSON\$1PARSE y sus funciones asociadas analizan los valores JSON como SUPER, que Amazon Redshift analiza de forma más eficiente que VARCHAR.  
En lugar de usar JSON\$1EXTRACT\$1ARRAY\$1ELEMENT\$1TEXT, le recomendamos que analice las cadenas JSON con [Función JSON\$1PARSE](JSON_PARSE.md) para obtener un valor SUPER. A continuación, consulte el elemento que desee utilizando su índice de matriz, con la sintaxis de `value[element position]`. Para obtener más información sobre cómo consultar los elementos de una matriz en valores SUPER, vaya a [Consulta de datos semiestructurados](query-super.md).

La función JSON\$1EXTRACT\$1ARRAY\$1ELEMENT\$1TEXT devuelve un elemento de la matriz JSON en la matriz extrema de una cadena JSON utilizando un índice basado en cero. El primer elemento en una matriz está en posición 0. Si el índice es negativo o está fuera de los límites, JSON\$1EXTRACT\$1ARRAY\$1ELEMENT\$1TEXT devuelve `NULL`. Si el argumento *null\$1if\$1invalid* está establecido en `TRUE` y la cadena JSON no es válida, la función devuelve `NULL` en lugar de un error.

Para obtener más información, consulte [Funciones JSON](json-functions.md). 

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

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

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

 *json\$1string*  
Una cadena JSON con formato adecuado.

*pos*  
Un valor `INTEGER` que representa el índice del elemento de matriz que se devolverá, utilizando un índice de matriz basado en cero.

*null\$1if\$1invalid*  
(Opcional) Un valor `BOOLEAN` que especifica que se devuelva `NULL` si la cadena JSON de entrada no es válida en lugar de devolver un error. Para devolver `NULL` si la cadena JSON no es válida, especifique `true` (`t`). Para devolver un error si la cadena JSON no es válida, especifique `false` (`f`). El valor predeterminado es `false`.

## Tipo de retorno
<a name="JSON_EXTRACT_ARRAY_ELEMENT_TEXT-return"></a>

`VARCHAR`  
Una cadena `VARCHAR` que representa el elemento de matriz JSON al que se hace referencia en *pos*.

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

Para devolver el elemento de matriz en la posición 2, que es el tercer elemento de un índice de matriz basado en cero, use el siguiente ejemplo. 

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

Para devolver un error porque la cadena JSON no es válida, use el siguiente ejemplo.

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

Para establecer *null\$1if\$1invalid* en *true*, para que la instrucción devuelva `NULL` en lugar de devolver un error para indicar que la cadena JSON no es válida, use el siguiente ejemplo.

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

Considere las siguientes instrucciones de ejemplo. Si la cadena JSON proporcionada o el índice son NULL, JSON\$1EXTRACT\$1ARRAY\$1ELEMENT\$1TEXT devuelve NULL independientemente del valor de cualquier otro parámetro. 

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

Considere las siguientes instrucciones de ejemplo. Cuando *null\$1if\$1invalid* es TRUE, JSON\$1EXTRACT\$1ARRAY\$1ELEMENT\$1TEXT devuelve NULL cuando *json\$1string* es JSON no válido. Si *null\$1if\$1invalid* es FALSE o no se ha establecido, la función devuelve un error cuando *json\$1string* no es válido.

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

Considere el siguiente ejemplo, donde *json\$1string* es JSON válido y *pos* hace referencia a un valor `null` JSON. En este caso, JSON\$1EXTRACT\$1ARRAY\$1ELEMENT\$1TEXT devuelve NULL, independientemente del valor de *null\$1if\$1invalid*.

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

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