SQLite
 sql >> Database >  >> RDS >> SQLite

SQLite JSON_ARRAY()

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:

[]