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