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:
[]