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

SQLite JSON_TYPE()

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) 

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 |+------+---------+------+------+------+-------+