SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

SQLite JSON_TYPE()


O SQLite json_type() A função retorna o tipo do elemento mais externo do JSON fornecido.

Fornecemos o JSON como um argumento quando chamamos a função.

Opcionalmente, podemos passar um caminho, o que nos permite obter o tipo de um elemento de array específico ou membro de objeto dentro do JSON.

Sintaxe


Podemos usar a função das seguintes maneiras:
json_type(X)json_type(X,P) 

Onde X representa o JSON e P é um argumento opcional que representa o caminho para obter o tipo de.

A função retorna um dos seguintes valores de texto SQL: null , verdadeiro , falso , inteiro , real , texto , matriz , ou objeto .

Exemplo


Veja um exemplo para demonstrar como funciona:
SELECT json_type('{ "name" :"Fofo", "idade" :10 }'); 

Resultado:
objeto

Aqui eu forneci apenas o JSON – não forneci um caminho. Nesse caso, o JSON mais externo é um objeto.

Aqui está uma matriz:
SELECT json_type('[ 1, 2, 3 ]'); 

Resultado:
matriz

Podemos até fazer coisas assim:
SELECT json_type(10.45); 

Resultado:
real

Nesse caso, meu argumento não é realmente um objeto ou array JSON, mas json_type() foi capaz de retornar seu tipo de qualquer maneira.

Especifique um caminho


Veja o que acontece quando especificamos um caminho:
SELECT json_type('{ "name" :"Fluffy", "age" :10 }', '$.age'); 

Resultado:
inteiro

Nesse caso, especifiquei um caminho de $.age , que resultou no tipo de age membro sendo devolvido.

Vamos pegar o tipo do name membro:
SELECT json_type('{ "name" :"Fluffy", "age" :10 }', '$.name'); 

Resultado:
texto

Vamos fazer isso em um array:
SELECT json_type('[ "Wag", 2, 1.5, null, true, false ]', '$[0]'); 

Resultado:
texto

Isso tem o tipo do primeiro elemento (matrizes SQLite são baseadas em zero, então 0 é para o primeiro elemento).

Vamos obter os tipos de todos os elementos no 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"; 

Resultado:
+------+---------+------+------+------+-------+ | 0 | 1 | 2 | 3 | 4 | 5 |+------+---------+------+------+------+-----------+| texto | inteiro | reais | nulo | verdadeiro | falso |+------+---------+------+------+------+-------+