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