SQLite json_type()
funktion returnerer typen af det yderste element i den givne JSON.
Vi giver JSON som et argument, når vi kalder funktionen.
Vi kan valgfrit passere en sti, som giver os mulighed for at få typen af et specifikt array-element eller objektmedlem i JSON.
Syntaks
Vi kan bruge funktionen på følgende måder:
json_type(X)
json_type(X,P)
Hvor X
repræsenterer JSON og P
er et valgfrit argument, der repræsenterer stien til at få typen af.
Funktionen returnerer en af følgende SQL-tekstværdier: null
, true
, false
, integer
, real
, text
, array
eller object
.
Eksempel
Her er et eksempel for at demonstrere, hvordan det virker:
SELECT json_type('{ "name" : "Fluffy", "age" : 10 }');
Resultat:
object
Her leverede jeg kun JSON - jeg gav ikke en sti. I dette tilfælde er den yderste JSON et objekt.
Her er et array:
SELECT json_type('[ 1, 2, 3 ]');
Resultat:
array
Vi kan endda gøre ting som dette:
SELECT json_type(10.45);
Resultat:
real
I dette tilfælde er mit argument faktisk ikke et JSON-objekt eller et array, men json_type()
var i stand til at returnere sin type alligevel.
Angiv en sti
Her er, hvad der sker, når vi angiver en sti:
SELECT json_type('{ "name" : "Fluffy", "age" : 10 }', '$.age');
Resultat:
integer
I dette tilfælde har jeg angivet en sti til $.age
, hvilket resulterede i typen age
medlem returneres.
Lad os få typen af name
medlem:
SELECT json_type('{ "name" : "Fluffy", "age" : 10 }', '$.name');
Resultat:
text
Lad os gøre det på et array:
SELECT json_type('[ "Wag", 2, 1.5, null, true, false ]', '$[0]');
Resultat:
text
Det fik typen af det første element (SQLite-arrays er nul-baserede, så 0
er for det første element).
Lad os få typen af alle elementer i arrayet:
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";
Resultat:
+------+---------+------+------+------+-------+ | 0 | 1 | 2 | 3 | 4 | 5 | +------+---------+------+------+------+-------+ | text | integer | real | null | true | false | +------+---------+------+------+------+-------+