SQLite
 sql >> Datenbank >  >> RDS >> SQLite

SQLite JSON_TYPE()

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 |
+------+---------+------+------+------+-------+