В SQLite, json_array()
функцията връща добре оформен JSON масив въз основа на неговите аргументи.
Функцията приема нула или повече аргументи и всеки аргумент става елемент в получения масив.
Синтаксис
json_array(value1,value2,...)
Където value1, value2, ...
представлява елементите на масива за получения масив.
Пример
Ето един прост пример за демонстрация:
SELECT json_array( 9, 7, 12, 11 );
Резултат:
[9,7,12,11]
Добавянето на кавички към число води до това, че елементът на масива е цитиран JSON низ:
SELECT json_array( 9, '7', 12, 11 );
Резултат:
[9,"7",12,11]
Предаване на JSON обекти
Предаването на аргумент с SQL тип TEXT води до JSON низ в кавички, като всички етикети в кавички са екранирани:
SELECT json_array( '{ "a" : 1 }' );
Резултат:
["{ \"a\" : 1 }"]
Ако не искаме това да се случи, можем да използваме json()
функция за предоставяне на стойността като валиден JSON документ:
SELECT json_array( json('{ "a" : 1 }') );
Резултат:
[{"a":1}]
Друг начин да го направите е да използвате ->
на SQLite оператор:
SELECT json_array( '{ "a" : 1 }' -> '$' );
Резултат:
[{"a":1}]
Като алтернатива можем да използваме json_object()
функция:
SELECT json_array( json_object( 'a', 1 ) );
Резултат:
[{"a":1}]
Ето го с някои други елементи на масива:
SELECT json_array( "Cat", json_object( 'a', 1 ), "Dog" );
Резултат:
["Cat",{"a":1},"Dog"]
Предаване на JSON масиви
Подобно нещо е и при предаване на JSON масиви:
SELECT json_array( '[ 9, 4, 7 ]' );
Резултат:
["[ 9, 4, 7 ]"]
В този случай получаваме JSON масив, който съдържа низ, който прилича на друг масив.
За да върнем действителен JSON масив, можем да предадем нашия аргумент на json()
функция:
SELECT json_array( json('[ 9, 4, 7 ]') );
Резултат:
[[9,4,7]]
Можем също да използваме ->
оператор:
SELECT json_array( '[ 9, 4, 7 ]' -> '$' );
Резултат:
[[9,4,7]]
Като алтернатива можем да предадем стойностите на друг json_array()
:
SELECT json_array( json_array( 9, 4, 7 ) );
Резултат:
[[9,4,7]]
Ето го с някои други елементи на масива:
SELECT json_array( "Cat", json_array( 9, 4, 7 ), "Dog" );
Резултат:
["Cat",[9,4,7],"Dog"]
Създайте празен масив
Извикване на json_array()
без подаване на аргументи води до празен масив:
SELECT json_array();
Резултат:
[]