Funzione JSON_EXTRACT_ARRAY_ELEMENT_TEXT - Amazon Redshift

Amazon Redshift non supporterà più la creazione di nuovi Python UDFs a partire dalla Patch 198. Python esistente UDFs continuerà a funzionare fino al 30 giugno 2026. Per ulteriori informazioni, consulta il post del blog.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Funzione JSON_EXTRACT_ARRAY_ELEMENT_TEXT

Nota

JSON_PARSE e le funzioni associate analizzano i valori JSON come SUPER, che Amazon Redshift analizza in modo più efficiente di VARCHAR.

Invece di utilizzare JSON_EXTRACT_ARRAY_ELEMENT_TEXT, consigliamo di analizzare le stringhe JSON utilizzando Funzione JSON_PARSE per ottenere un valore SUPER. Quindi esegui query sull’elemento desiderato con il relativo indice di array, utilizzando la sintassi value[element position]. Per ulteriori informazioni sull’esecuzione di query sugli elementi dell’array nei valori SUPER, consulta Query sui dati semistrutturati.

JSON_EXTRACT_ARRAY_ELEMENT_TEXT restituisce un elemento di array JSON nell'array più esterno di una stringa JSON, utilizzando un indice con base zero. Il primo elemento in un array è in posizione 0. Se l’indice è negativo o fuori intervallo, JSON_EXTRACT_ARRAY_ELEMENT_TEXT restituisce NULL. Se l'argomento null_if_invalid è impostato su TRUE e la stringa JSON non è valida, la funzione restituisce NULL invece di restituire un errore.

Per ulteriori informazioni, consulta Funzioni JSON.

Sintassi

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

Arguments (Argomenti)

json_string

Una stringa JSON correttamente formattata.

pos

Un INTEGER che rappresenta l'indice dell'elemento array da restituire, utilizzando un indice di array con base zero.

null_if_invalid

(Facoltativo) Un valore BOOLEAN che specifica se restituire NULL se la stringa JSON di input non è valida, invece di restituire un errore. Per restituire NULL se JSON non è valido, specifica true (t). Per restituire un errore se JSON non è valido, specificare false (f). Il valore predefinito è false.

Tipo restituito

VARCHAR

Una stringa VARCHAR che rappresenta l'elemento dell'array JSON a cui fa riferimento pos.

Esempi

Per restituire un elemento di array alla posizione 2, che è il terzo elemento di un indice di array a base zero, utilizza l'esempio seguente.

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

Per restituire un errore poiché JSON non è valido, utilizza l'esempio seguente.

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

Per impostare null_if_invalid su true, in modo che l'istruzione restituisca NULL invece di restituire un errore di formato JSON non valido, utilizza l'esempio seguente.

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

Considera le seguenti istruzioni di esempio. Se la stringa JSON fornita o l’indice è NULL, JSON_EXTRACT_ARRAY_ELEMENT_TEXT restituisce NULL, indipendentemente dal valore di qualsiasi altro parametro.

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

Considera le seguenti istruzioni di esempio. Quando null_if_invalid è TRUE, JSON_EXTRACT_ARRAY_ELEMENT_TEXT restituisce NULL quando json_string è JSON non valido. Se null_if_invalid è FALSE o non è impostato, la funzione restituisce un errore quando json_string non è valido.

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

Considera l’esempio seguente, dove json_string è JSON valido e pos fa riferimento a un valore JSON null. In questo caso JSON_EXTRACT_ARRAY_ELEMENT_TEXT restituisce NULL, indipendentemente dal valore di null_if_invalid.

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