El SQLite json_type() La función devuelve el tipo del elemento más externo del JSON dado.
Proporcionamos el JSON como argumento cuando llamamos a la función.
Opcionalmente, podemos pasar una ruta, lo que nos permite obtener el tipo de un elemento de matriz específico o un miembro de objeto dentro del JSON.
Sintaxis
Podemos usar la función de las siguientes maneras:
json_type(X)
json_type(X,P)
Donde X representa el JSON y P es un argumento opcional que representa la ruta para obtener el tipo de.
La función devuelve uno de los siguientes valores de texto SQL: null , true , false , integer , real , text , array , o object .
Ejemplo
Aquí hay un ejemplo para demostrar cómo funciona:
SELECT json_type('{ "name" : "Fluffy", "age" : 10 }'); Resultado:
object
Aquí solo proporcioné el JSON, no proporcioné una ruta. En este caso, el JSON más externo es un objeto.
Aquí hay una matriz:
SELECT json_type('[ 1, 2, 3 ]'); Resultado:
array
Incluso podemos hacer cosas como esta:
SELECT json_type(10.45); Resultado:
real
En este caso, mi argumento no es en realidad un objeto o matriz JSON, sino json_type() fue capaz de devolver su tipo de todos modos.
Especifique una ruta
Esto es lo que sucede cuando especificamos una ruta:
SELECT json_type('{ "name" : "Fluffy", "age" : 10 }', '$.age'); Resultado:
integer
En este caso, especifiqué una ruta de $.age , que dio como resultado el tipo de age miembro que se devuelve.
Obtengamos el tipo de name miembro:
SELECT json_type('{ "name" : "Fluffy", "age" : 10 }', '$.name'); Resultado:
text
Hagámoslo en una matriz:
SELECT json_type('[ "Wag", 2, 1.5, null, true, false ]', '$[0]'); Resultado:
text
Eso obtuvo el tipo del primer elemento (las matrices SQLite están basadas en cero, por lo que 0 es para el primer elemento).
Obtengamos los tipos de todos los elementos en la matriz:
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 | +------+---------+------+------+------+-------+ | text | integer | real | null | true | false | +------+---------+------+------+------+-------+