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