Funzione JSON_EXTRACT_ARRAY_ELEMENT_TEXT - Amazon Redshift

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, ti consigliamo di analizzare le stringhe JSON utilizzando il valore per ottenere un valore SUPER. Funzione JSON_PARSE Quindi, interroga l'elemento desiderato utilizzando il relativo indice di matrice, utilizzando la sintassi. value[element position] Per ulteriori informazioni sull'interrogazione degli elementi dell'array nei valori SUPER, vai a. 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 non supera i limiti, viene restituito JSON_EXTRACT_ARRAY_ELEMENT_TEXT. 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 ] )

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

Considerate le seguenti istruzioni di esempio. Se la stringa JSON o l'indice forniti sono 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

Considerate le seguenti istruzioni di esempio. Quando null_if_invalid è TRUE, JSON_EXTRACT_ARRAY_ELEMENT_TEXT restituisce NULL quando json_string non è un JSON 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

Considerate l'esempio seguente, in cui json_string è JSON valido e pos si riferisce 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