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