SQLite json_type()
funktion returnerar typen av det yttersta elementet i den givna JSON.
Vi tillhandahåller JSON som ett argument när vi anropar funktionen.
Vi kan valfritt passera en sökväg som gör att vi kan få typen av ett specifikt arrayelement eller objektmedlem inom JSON.
Syntax
Vi kan använda funktionen på följande sätt:
json_type(X)
json_type(X,P)
Där X
representerar JSON och P
är ett valfritt argument som representerar sökvägen för att få typen av.
Funktionen returnerar ett av följande SQL-textvärden: null
, true
, false
, integer
, real
, text
, array
, eller object
.
Exempel
Här är ett exempel för att visa hur det fungerar:
SELECT json_type('{ "name" : "Fluffy", "age" : 10 }');
Resultat:
object
Här tillhandahöll jag bara JSON – jag gav ingen väg. I det här fallet är den yttersta JSON ett objekt.
Här är en array:
SELECT json_type('[ 1, 2, 3 ]');
Resultat:
array
Vi kan till och med göra sånt här:
SELECT json_type(10.45);
Resultat:
real
I det här fallet är mitt argument egentligen inte ett JSON-objekt eller en array, utan json_type()
kunde returnera sin typ ändå.
Ange en sökväg
Så här händer när vi anger en sökväg:
SELECT json_type('{ "name" : "Fluffy", "age" : 10 }', '$.age');
Resultat:
integer
I det här fallet angav jag sökvägen $.age
, vilket resulterade i typen av age
medlem återlämnas.
Låt oss ta reda på typen av name
medlem:
SELECT json_type('{ "name" : "Fluffy", "age" : 10 }', '$.name');
Resultat:
text
Låt oss göra det på en array:
SELECT json_type('[ "Wag", 2, 1.5, null, true, false ]', '$[0]');
Resultat:
text
Det fick typen av det första elementet (SQLite-arrayer är nollbaserade, så 0
är för det första elementet).
Låt oss ta reda på vilka typer av alla element i arrayen:
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 | +------+---------+------+------+------+-------+