Função JSON_EXTRACT_ARRAY_ELEMENT_TEXT - Amazon Redshift

Função JSON_EXTRACT_ARRAY_ELEMENT_TEXT

nota

O JSON_PARSE e suas funções associadas analisam os valores JSON como SUPER, que o Amazon Redshift analisa com maior eficiência do que o VARCHAR.

Em vez de usar JSON_EXTRACT_ARRAY_ELEMENT_TEXT, recomendamos que você analise suas strings JSON usando o Função JSON_PARSE para ter um valor SUPER. Depois, consulte o elemento desejado usando o índice de matriz, com a sintaxe value[element position]. Para ter mais informações sobre como consultar elementos de matriz em valores SUPER, acesse Consultar dados semiestruturados.

A função JSON_EXTRACT_ARRAY_ELEMENT_TEXT retorna um elemento de array JSON no array mais externa de uma string JSON, usando um índice baseado em zero. O primeiro elemento em uma matriz fica na posição 0. Se o índice for negativo ou estiver fora do limite, JSON_EXTRACT_ARRAY_ELEMENT_TEXT retornará uma string vazia. Se o argumento null_if_invalid for definido como true e a string JSON for inválida, a função retornará NULL, em vez de retornar um erro.

Para ter mais informações, consulte Funções JSON.

Sintaxe

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

Argumentos

json_string

Uma string JSON adequadamente formatada.

pos

Um INTEGER que representa o índice do elemento da matriz a ser retornado, usando um índice de matriz baseado em zero.

null_if_invalid

(Opcional) Um valor BOOLEAN que especifica se NULL será ou não retornado caso a string de entrada JSON seja inválida, em vez de retornar um erro. Para retornar NULL se JSON for inválido, especifique true (t). Para retornar um erro se JSON for inválido, especifique false (f). O padrão é false.

Tipo de retorno

VARCHAR

Uma string VARCHAR representando o elemento da matriz JSON referido por pos.

Exemplos

Para retornar o elemento da posição 2 da matriz, que é o terceiro elemento de um índice de matriz baseado em zero, use o exemplo a seguir.

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

Para retornar um erro porque JSON é inválido, use o exemplo a seguir.

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 definir null_if_invalid como true a fim de que a instrução retorne NULL, em vez de retornar um erro para o JSON inválido, use o exemplo a seguir.

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