In SQLite, il json_array() La funzione restituisce un array JSON ben formato in base ai suoi argomenti.
La funzione accetta zero o più argomenti e ogni argomento diventa un elemento nell'array risultante.
Sintassi
json_array(value1,value2,...)
Dove value1, value2, ... rappresenta gli elementi dell'array per l'array risultante.
Esempio
Ecco un semplice esempio da dimostrare:
SELECT json_array( 9, 7, 12, 11 ); Risultato:
[9,7,12,11]
L'aggiunta di virgolette a un numero fa sì che l'elemento dell'array sia una stringa JSON tra virgolette:
SELECT json_array( 9, '7', 12, 11 ); Risultato:
[9,"7",12,11]
Trasferimento di oggetti JSON
Il passaggio di un argomento con tipo SQL TEXT genera una stringa JSON tra virgolette, con l'escape di tutte le etichette tra virgolette:
SELECT json_array( '{ "a" : 1 }' ); Risultato:
["{ \"a\" : 1 }"]
Se non vogliamo che ciò accada, possiamo usare json() funzione per fornire il valore come documento JSON valido:
SELECT json_array( json('{ "a" : 1 }') ); Risultato:
[{"a":1}]
Un altro modo per farlo è usare -> di SQLite operatore:
SELECT json_array( '{ "a" : 1 }' -> '$' ); Risultato:
[{"a":1}]
In alternativa, possiamo usare json_object() funzione:
SELECT json_array( json_object( 'a', 1 ) ); Risultato:
[{"a":1}] Eccolo con alcuni altri elementi dell'array:
SELECT json_array( "Cat", json_object( 'a', 1 ), "Dog" ); Risultato:
["Cat",{"a":1},"Dog"] Passaggio di array JSON
È una cosa simile quando si passano gli array JSON:
SELECT json_array( '[ 9, 4, 7 ]' ); Risultato:
["[ 9, 4, 7 ]"]
In questo caso, otteniamo un array JSON che contiene una stringa che assomiglia a un altro array.
Per restituire un vero array JSON, possiamo passare il nostro argomento a json() funzione:
SELECT json_array( json('[ 9, 4, 7 ]') ); Risultato:
[[9,4,7]]
Possiamo anche usare il -> operatore:
SELECT json_array( '[ 9, 4, 7 ]' -> '$' ); Risultato:
[[9,4,7]]
In alternativa, possiamo passare i valori a un altro json_array() :
SELECT json_array( json_array( 9, 4, 7 ) ); Risultato:
[[9,4,7]]
Eccolo con alcuni altri elementi dell'array:
SELECT json_array( "Cat", json_array( 9, 4, 7 ), "Dog" ); Risultato:
["Cat",[9,4,7],"Dog"]
Crea un array vuoto
Chiamando json_array() senza passare alcun argomento risulta in un array vuoto:
SELECT json_array(); Risultato:
[]