SQLite
 sql >> Database >  >> RDS >> SQLite

SQLite JSON_TYPE()

Il json_type() di SQLite La funzione restituisce il tipo dell'elemento più esterno del JSON specificato.

Forniamo il JSON come argomento quando chiamiamo la funzione.

Possiamo facoltativamente passare un percorso, che ci consente di ottenere il tipo di un elemento di matrice specifico o di un membro di un oggetto all'interno del JSON.

Sintassi

Possiamo utilizzare la funzione nei seguenti modi:

json_type(X)
json_type(X,P)

Dove X rappresenta il JSON e P è un argomento facoltativo che rappresenta il percorso di cui ottenere il tipo.

La funzione restituisce uno dei seguenti valori di testo SQL: null , true , false , integer , real , text , array o object .

Esempio

Ecco un esempio per dimostrare come funziona:

SELECT json_type('{ "name" : "Fluffy", "age" : 10 }');

Risultato:

object

Qui ho fornito solo il JSON - non ho fornito un percorso. In questo caso, il JSON più esterno è un oggetto.

Ecco una matrice:

SELECT json_type('[ 1, 2, 3 ]');

Risultato:

array

Possiamo anche fare cose come questa:

SELECT json_type(10.45);

Risultato:

real

In questo caso, il mio argomento non è in realtà un oggetto o un array JSON, ma json_type() è stato comunque in grado di restituire il suo tipo.

Specifica un percorso

Ecco cosa succede quando specifichiamo un percorso:

SELECT json_type('{ "name" : "Fluffy", "age" : 10 }', '$.age');

Risultato:

integer

In questo caso, ho specificato un percorso di $.age , che ha determinato il tipo di age membro che viene restituito.

Prendiamo il tipo del name membro:

SELECT json_type('{ "name" : "Fluffy", "age" : 10 }', '$.name');

Risultato:

text

Facciamolo su un array:

SELECT json_type('[ "Wag", 2, 1.5, null, true, false ]', '$[0]');

Risultato:

text

Questo ha ottenuto il tipo del primo elemento (gli array SQLite sono a base zero, quindi 0 è per il primo elemento).

Otteniamo i tipi di tutti gli elementi nell'array:

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";

Risultato:

+------+---------+------+------+------+-------+
|  0   |    1    |  2   |  3   |  4   |   5   |
+------+---------+------+------+------+-------+
| text | integer | real | null | true | false |
+------+---------+------+------+------+-------+