sql >> Base de Datos >  >> RDS >> SQLite

SQLiteJSON_ARRAY()

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:

[]