De SQLite json_type()
functie retourneert het type van het buitenste element van de gegeven JSON.
We geven de JSON als argument wanneer we de functie aanroepen.
We kunnen optioneel een pad doorgeven, waarmee we het type van een specifiek array-element of objectlid binnen de JSON kunnen krijgen.
Syntaxis
We kunnen de functie op de volgende manieren gebruiken:
json_type(X)
json_type(X,P)
Waar X
vertegenwoordigt de JSON, en P
is een optioneel argument dat het pad vertegenwoordigt om het type te krijgen.
De functie retourneert een van de volgende SQL-tekstwaarden: null
, true
, false
, integer
, real
, text
, array
, of object
.
Voorbeeld
Hier is een voorbeeld om te laten zien hoe het werkt:
SELECT json_type('{ "name" : "Fluffy", "age" : 10 }');
Resultaat:
object
Hier heb ik alleen de JSON opgegeven - ik heb geen pad opgegeven. In dit geval is de buitenste JSON een object.
Hier is een array:
SELECT json_type('[ 1, 2, 3 ]');
Resultaat:
array
We kunnen zelfs dit soort dingen doen:
SELECT json_type(10.45);
Resultaat:
real
In dit geval is mijn argument eigenlijk geen JSON-object of -array, maar json_type()
kon zijn type toch teruggeven.
Geef een pad op
Dit is wat er gebeurt als we een pad specificeren:
SELECT json_type('{ "name" : "Fluffy", "age" : 10 }', '$.age');
Resultaat:
integer
In dit geval heb ik een pad gespecificeerd van $.age
, wat resulteerde in het type age
lid wordt teruggestuurd.
Laten we het type van de name
. nemen lid:
SELECT json_type('{ "name" : "Fluffy", "age" : 10 }', '$.name');
Resultaat:
text
Laten we het op een array doen:
SELECT json_type('[ "Wag", 2, 1.5, null, true, false ]', '$[0]');
Resultaat:
text
Dat kreeg het type van het eerste element (SQLite-arrays zijn op nul gebaseerd, dus 0
is voor het eerste element).
Laten we de typen van alle elementen in de array bekijken:
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";
Resultaat:
+------+---------+------+------+------+-------+ | 0 | 1 | 2 | 3 | 4 | 5 | +------+---------+------+------+------+-------+ | text | integer | real | null | true | false | +------+---------+------+------+------+-------+