Der SQLite json_type()
Die Funktion gibt den Typ des äußersten Elements des angegebenen JSON zurück.
Wir stellen den JSON als Argument bereit, wenn wir die Funktion aufrufen.
Wir können optional einen Pfad übergeben, der es uns ermöglicht, den Typ eines bestimmten Array-Elements oder Objektmitglieds innerhalb des JSON zu erhalten.
Syntax
Wir können die Funktion auf folgende Weise verwenden:
json_type(X)
json_type(X,P)
Wobei X
steht für JSON und P
ist ein optionales Argument, das den Pfad darstellt, um den Typ von zu erhalten.
Die Funktion gibt einen der folgenden SQL-Textwerte zurück: null
, true
, false
, integer
, real
, text
, array
, oder object
.
Beispiel
Hier ist ein Beispiel, um zu demonstrieren, wie es funktioniert:
SELECT json_type('{ "name" : "Fluffy", "age" : 10 }');
Ergebnis:
object
Hier habe ich nur den JSON bereitgestellt – ich habe keinen Pfad angegeben. In diesem Fall ist das äußerste JSON ein Objekt.
Hier ist ein Array:
SELECT json_type('[ 1, 2, 3 ]');
Ergebnis:
array
Wir können sogar so etwas tun:
SELECT json_type(10.45);
Ergebnis:
real
In diesem Fall ist mein Argument eigentlich kein JSON-Objekt oder -Array, sondern json_type()
konnte seinen Typ trotzdem zurückgeben.
Geben Sie einen Pfad an
Folgendes passiert, wenn wir einen Pfad angeben:
SELECT json_type('{ "name" : "Fluffy", "age" : 10 }', '$.age');
Ergebnis:
integer
In diesem Fall habe ich einen Pfad von $.age
angegeben , was den Typ des age
ergab Mitglied zurückgegeben wird.
Lassen Sie uns den Typ des name
abrufen Mitglied:
SELECT json_type('{ "name" : "Fluffy", "age" : 10 }', '$.name');
Ergebnis:
text
Machen wir es mit einem Array:
SELECT json_type('[ "Wag", 2, 1.5, null, true, false ]', '$[0]');
Ergebnis:
text
Das hat den Typ des ersten Elements (SQLite-Arrays sind nullbasiert, also 0
ist für das erste Element).
Lassen Sie uns die Typen aller Elemente im Array abrufen:
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";
Ergebnis:
+------+---------+------+------+------+-------+ | 0 | 1 | 2 | 3 | 4 | 5 | +------+---------+------+------+------+-------+ | text | integer | real | null | true | false | +------+---------+------+------+------+-------+