Le SQLite json_type()
La fonction renvoie le type de l'élément le plus externe du JSON donné.
Nous fournissons le JSON comme argument lorsque nous appelons la fonction.
Nous pouvons éventuellement transmettre un chemin, ce qui nous permet d'obtenir le type d'un élément de tableau ou d'un membre d'objet spécifique dans le JSON.
Syntaxe
Nous pouvons utiliser la fonction des manières suivantes :
json_type(X)
json_type(X,P)
Où X
représente le JSON, et P
est un argument optionnel qui représente le chemin pour obtenir le type de.
La fonction renvoie l'une des valeurs de texte SQL suivantes : null
, true
, false
, integer
, real
, text
, array
, ou object
.
Exemple
Voici un exemple pour illustrer son fonctionnement :
SELECT json_type('{ "name" : "Fluffy", "age" : 10 }');
Résultat :
objet
Ici, je n'ai fourni que le JSON - je n'ai pas fourni de chemin. Dans ce cas, le JSON le plus externe est un objet.
Voici un tableau :
SELECT json_type('[ 1, 2, 3 ]');
Résultat :
tableau
Nous pouvons même faire des choses comme ça :
SELECT json_type(10.45);
Résultat :
réel
Dans ce cas, mon argument n'est pas réellement un objet ou un tableau JSON, mais json_type()
a quand même pu renvoyer son type.
Spécifier un chemin
Voici ce qui se passe lorsque nous spécifions un chemin :
SELECT json_type('{ "name" : "Fluffy", "age" : 10 }', '$.age');
Résultat :
entier
Dans ce cas, j'ai spécifié un chemin de $.age
, ce qui a donné le type de age
membre renvoyé.
Obtenons le type du name
membre :
SELECT json_type('{ "name" : "Fluffy", "age" : 10 }', '$.name');
Résultat :
texte
Faisons-le sur un tableau :
SELECT json_type('[ "Wag", 2, 1.5, null, true, false ]', '$[0]');
Résultat :
texte
Cela a obtenu le type du premier élément (les tableaux SQLite sont basés sur zéro, donc 0
est pour le premier élément).
Obtenons les types de tous les éléments du tableau :
SELECT
json_type('[ "Wag", 2, 1.5, null, true, false ]', '$[0]') AS "0",
json_type('[ "Wag", 2, 1.5, null, true, false ]', '$[1]') AS "1",
json_type('[ "Wag", 2, 1.5, null, true, false ]', '$[2]') AS "2",
json_type('[ "Wag", 2, 1.5, null, true, false ]', '$[3]') AS "3",
json_type('[ "Wag", 2, 1.5, null, true, false ]', '$[4]') AS "4",
json_type('[ "Wag", 2, 1.5, null, true, false ]', '$[5]') AS "5";
Résultat :
+------+---------+------+------+------+-------+ | 0 | 1 | 2 | 3 | 4 | 5 |+------+---------+------+------+------+-------+| texte | entier | réel | nul | vrai | faux |+------+---------+------+------+------+-------+