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

SQLite JSON_TYPE()

SQLite json_type() funktion returnerer typen af ​​det yderste element i den givne JSON.

Vi giver JSON som et argument, når vi kalder funktionen.

Vi kan valgfrit passere en sti, som giver os mulighed for at få typen af ​​et specifikt array-element eller objektmedlem i JSON.

Syntaks

Vi kan bruge funktionen på følgende måder:

json_type(X)
json_type(X,P)

Hvor X repræsenterer JSON og P er et valgfrit argument, der repræsenterer stien til at få typen af.

Funktionen returnerer en af ​​følgende SQL-tekstværdier: null , true , false , integer , real , text , array eller object .

Eksempel

Her er et eksempel for at demonstrere, hvordan det virker:

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

Resultat:

object

Her leverede jeg kun JSON - jeg gav ikke en sti. I dette tilfælde er den yderste JSON et objekt.

Her er et array:

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

Resultat:

array

Vi kan endda gøre ting som dette:

SELECT json_type(10.45);

Resultat:

real

I dette tilfælde er mit argument faktisk ikke et JSON-objekt eller et array, men json_type() var i stand til at returnere sin type alligevel.

Angiv en sti

Her er, hvad der sker, når vi angiver en sti:

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

Resultat:

integer

I dette tilfælde har jeg angivet en sti til $.age , hvilket resulterede i typen age medlem returneres.

Lad os få typen af ​​name medlem:

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

Resultat:

text

Lad os gøre det på et array:

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

Resultat:

text

Det fik typen af ​​det første element (SQLite-arrays er nul-baserede, så 0 er for det første element).

Lad os få typen af ​​alle elementer i arrayet:

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

  1. Postgres-fejl ved indsættelse - FEJL:ugyldig bytesekvens til kodning af UTF8:0x00

  2. Sammenlign eksekveringsplaner i SQL Server

  3. SQL-CASE:Kend og undgå 3 mindre kendte problemer

  4. cd:-M:ugyldig mulighed