SQLite
 sql >> Base de données >  >> RDS >> SQLite

SQLite JSON_ARRAY()

Dans SQLite, le json_array() La fonction renvoie un tableau JSON bien formé en fonction de ses arguments.

La fonction accepte zéro argument ou plus, et chaque argument devient un élément dans le tableau résultant.

Syntaxe

json_array(value1,value2,...)

value1, value2, ... représente les éléments du tableau pour le tableau résultant.

Exemple

Voici un exemple simple pour illustrer :

SELECT json_array( 9, 7, 12, 11 );

Résultat :

[9,7,12,11]

L'ajout de guillemets à un nombre fait que cet élément de tableau est une chaîne JSON entre guillemets :

SELECT json_array( 9, '7', 12, 11 );

Résultat :

[9,"7",12,11]

Passer des objets JSON

La transmission d'un argument avec le type SQL TEXT donne une chaîne JSON entre guillemets, toutes les étiquettes entre guillemets étant échappées :

SELECT json_array( '{ "a" : 1 }' );

Résultat :

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

Si nous ne voulons pas que cela se produise, nous pouvons utiliser le json() fonction pour fournir la valeur en tant que document JSON valide :

SELECT json_array( json('{ "a" : 1 }') );

Résultat :

[{"a":1}]

Une autre façon de le faire est d'utiliser le -> de SQLite opérateur :

SELECT json_array( '{ "a" : 1 }' -> '$' );

Résultat :

[{"a":1}]

Alternativement, nous pouvons utiliser le json_object() fonction :

SELECT json_array( json_object( 'a', 1 ) );

Résultat :

[{"a":1}]

Le voici avec quelques autres éléments de tableau :

SELECT json_array( "Cat", json_object( 'a', 1 ), "Dog" );

Résultat :

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

Transmettre des tableaux JSON

C'est la même chose lors du passage de tableaux JSON :

SELECT json_array( '[ 9, 4, 7 ]' );

Résultat :

["[ 9, 4, 7 ]"]

Dans ce cas, nous obtenons un tableau JSON qui contient une chaîne qui ressemble à un autre tableau.

Pour retourner un tableau JSON réel, nous pouvons passer notre argument au json() fonction :

SELECT json_array( json('[ 9, 4, 7 ]') );

Résultat :

[[9,4,7]]

On peut aussi utiliser le -> opérateur :

SELECT json_array( '[ 9, 4, 7 ]' -> '$' );

Résultat :

[[9,4,7]]

Alternativement, nous pouvons passer les valeurs à un autre json_array() :

SELECT json_array( json_array( 9, 4, 7 ) );

Résultat :

[[9,4,7]]

Le voici avec quelques autres éléments de tableau :

SELECT json_array( "Cat", json_array( 9, 4, 7 ), "Dog" );

Résultat :

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

Créer un tableau vide

Appel de json_array() sans passer aucun argument donne un tableau vide :

SELECT json_array();

Résultat :

[]