SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

SQLite JSON_ARRAY()


No SQLite, o json_array() A função retorna uma matriz JSON bem formada com base em seus argumentos.

A função aceita zero ou mais argumentos e cada argumento se torna um elemento na matriz resultante.

Sintaxe

json_array(value1,value2,...)

Onde value1, value2, ... representa os elementos da matriz para a matriz resultante.

Exemplo


Aqui está um exemplo simples para demonstrar:
SELECT json_array( 9, 7, 12, 11 );

Resultado:
[9,7,12,11]

Adicionar aspas a um número resulta nesse elemento da matriz sendo uma string JSON entre aspas:
SELECT json_array( 9, '7', 12, 11 );

Resultado:
[9,"7",12,11]

Passando objetos JSON


Passar um argumento com o tipo SQL TEXT resulta em uma string JSON entre aspas, com quaisquer rótulos entre aspas sendo escapados:
SELECT json_array( '{ "a" : 1 }' );

Resultado:
["{ \"a\" : 1 }"]

Se não quisermos que isso aconteça, podemos usar o json() função para fornecer o valor como um documento JSON válido:
SELECT json_array( json('{ "a" : 1 }') );

Resultado:
[{"a":1}]

Outra maneira de fazer isso é usar o -> do SQLite operador:
SELECT json_array( '{ "a" : 1 }' -> '$' );

Resultado:
[{"a":1}]

Alternativamente, podemos usar o json_object() função:
SELECT json_array( json_object( 'a', 1 ) );

Resultado:
[{"a":1}]

Aqui está com alguns outros elementos da matriz:
SELECT json_array( "Cat", json_object( 'a', 1 ), "Dog" );

Resultado:
["Cat",{"a":1},"Dog"]

Passando matrizes JSON


É algo semelhante ao passar matrizes JSON:
SELECT json_array( '[ 9, 4, 7 ]' );

Resultado:
["[ 9, 4, 7 ]"]

Nesse caso, obtemos um array JSON que contém uma string que se assemelha a outro array.

Para retornar um array JSON real, podemos passar nosso argumento para o json() função:
SELECT json_array( json('[ 9, 4, 7 ]') );

Resultado:
[[9,4,7]]

Também podemos usar o -> operador:
SELECT json_array( '[ 9, 4, 7 ]' -> '$' );

Resultado:
[[9,4,7]]

Alternativamente, podemos passar os valores para outro json_array() :
SELECT json_array( json_array( 9, 4, 7 ) );

Resultado:
[[9,4,7]]

Aqui está com alguns outros elementos da matriz:
SELECT json_array( "Cat", json_array( 9, 4, 7 ), "Dog" );

Resultado:
["Cat",[9,4,7],"Dog"]

Criar uma matriz vazia


Chamando json_array() sem passar nenhum argumento resulta em uma matriz vazia:
SELECT json_array();

Resultado:
[]