SQLite json_type()
funkce vrací typ nejvzdálenějšího prvku daného JSON.
Při volání funkce poskytujeme JSON jako argument.
Volitelně můžeme předat cestu, která nám umožňuje získat typ konkrétního prvku pole nebo členu objektu v rámci JSON.
Syntaxe
Funkci můžeme použít následujícími způsoby:
json_type(X)
json_type(X,P)
Kde X
představuje JSON a P
je volitelný argument, který představuje cestu k získání typu.
Funkce vrací jednu z následujících textových hodnot SQL: null
, true
, false
, integer
, real
, text
, array
nebo object
.
Příklad
Zde je příklad demonstrující, jak to funguje:
SELECT json_type('{ "name" : "Fluffy", "age" : 10 }');
Výsledek:
objekt
Zde jsem poskytl pouze JSON – neuvedl jsem cestu. V tomto případě je nejvzdálenější JSON objekt.
Zde je pole:
SELECT json_type('[ 1, 2, 3 ]');
Výsledek:
pole
Můžeme dokonce dělat věci jako toto:
SELECT json_type(10.45);
Výsledek:
skutečné
V tomto případě můj argument ve skutečnosti není objekt nebo pole JSON, ale json_type()
stejně dokázal vrátit svůj typ.
Zadejte cestu
Zde je to, co se stane, když zadáme cestu:
SELECT json_type('{ "name" : "Fluffy", "age" : 10 }', '$.age');
Výsledek:
celé číslo
V tomto případě jsem zadal cestu $.age
, což vedlo k typu age
člen se vrací.
Pojďme získat typ name
člen:
SELECT json_type('{ "name" : "Fluffy", "age" : 10 }', '$.name');
Výsledek:
text
Udělejme to na poli:
SELECT json_type('[ "Wag", 2, 1.5, null, true, false ]', '$[0]');
Výsledek:
text
To získalo typ prvního prvku (pole SQLite jsou založeny na nule, takže 0
je pro první prvek).
Pojďme získat typy všech prvků v poli:
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";
Výsledek:
+------+---------+------+------+------+-------+ | 0 | 1 | 2 | 3 | 4 | 5 |+------+---------+------+------+------+-------+| text | celé číslo | skutečný | null | pravda | nepravda |+------+---------+------+------+------+-------+