En SQLite, json_array()
La función devuelve una matriz JSON bien formada en función de sus argumentos.
La función acepta cero o más argumentos, y cada argumento se convierte en un elemento de la matriz resultante.
Sintaxis
json_array(value1,value2,...)
Donde value1, value2, ...
representa los elementos de la matriz para la matriz resultante.
Ejemplo
Aquí hay un ejemplo simple para demostrarlo:
SELECT json_array( 9, 7, 12, 11 );
Resultado:
[9,7,12,11]
Agregar comillas a un número da como resultado que ese elemento de la matriz sea una cadena JSON entre comillas:
SELECT json_array( 9, '7', 12, 11 );
Resultado:
[9,"7",12,11]
Pasar objetos JSON
Pasar un argumento con TEXTO de tipo SQL da como resultado una cadena JSON entrecomillada, con cualquier etiqueta entrecomillada escapada:
SELECT json_array( '{ "a" : 1 }' );
Resultado:
["{ \"a\" : 1 }"]
Si no queremos que esto suceda, podemos usar json()
función para proporcionar el valor como un documento JSON válido:
SELECT json_array( json('{ "a" : 1 }') );
Resultado:
[{"a":1}]
Otra forma de hacerlo es usar ->
de SQLite operador:
SELECT json_array( '{ "a" : 1 }' -> '$' );
Resultado:
[{"a":1}]
Alternativamente, podemos usar json_object()
función:
SELECT json_array( json_object( 'a', 1 ) );
Resultado:
[{"a":1}]
Aquí está con algunos otros elementos de la matriz:
SELECT json_array( "Cat", json_object( 'a', 1 ), "Dog" );
Resultado:
["Cat",{"a":1},"Dog"]
Pasar matrices JSON
Es algo similar al pasar matrices JSON:
SELECT json_array( '[ 9, 4, 7 ]' );
Resultado:
["[ 9, 4, 7 ]"]
En este caso, obtenemos una matriz JSON que contiene una cadena que se parece a otra matriz.
Para devolver una matriz JSON real, podemos pasar nuestro argumento a json()
función:
SELECT json_array( json('[ 9, 4, 7 ]') );
Resultado:
[[9,4,7]]
También podemos usar el ->
operador:
SELECT json_array( '[ 9, 4, 7 ]' -> '$' );
Resultado:
[[9,4,7]]
Alternativamente, podemos pasar los valores a otro json_array()
:
SELECT json_array( json_array( 9, 4, 7 ) );
Resultado:
[[9,4,7]]
Aquí está con algunos otros elementos de la matriz:
SELECT json_array( "Cat", json_array( 9, 4, 7 ), "Dog" );
Resultado:
["Cat",[9,4,7],"Dog"]
Crear una matriz vacía
Llamando a json_array()
sin pasar ningún argumento da como resultado una matriz vacía:
SELECT json_array();
Resultado:
[]