W SQLite json_array() funkcja zwraca poprawnie sformatowaną tablicę JSON na podstawie jej argumentów.
Funkcja przyjmuje zero lub więcej argumentów, a każdy argument staje się elementem wynikowej tablicy.
Składnia
json_array(value1,value2,...)
Gdzie value1, value2, ... reprezentuje elementy tablicy wynikowej tablicy.
Przykład
Oto prosty przykład do zademonstrowania:
SELECT json_array( 9, 7, 12, 11 ); Wynik:
[9,7,12,11]
Dodanie cudzysłowów do liczby powoduje, że ten element tablicy jest ciągiem JSON w cudzysłowie:
SELECT json_array( 9, '7', 12, 11 ); Wynik:
[9,"7",12,11]
Przekazywanie obiektów JSON
Przekazanie argumentu z typem SQL typu TEXT powoduje powstanie ciągu JSON w cudzysłowie, ze znakami ucieczki wszystkich etykiet w cudzysłowie:
SELECT json_array( '{ "a" : 1 }' ); Wynik:
["{ \"a\" : 1 }"]
Jeśli nie chcemy, aby tak się stało, możemy użyć json() funkcja do podania wartości jako prawidłowego dokumentu JSON:
SELECT json_array( json('{ "a" : 1 }') ); Wynik:
[{"a":1}]
Innym sposobem na to jest użycie -> SQLite operator:
SELECT json_array( '{ "a" : 1 }' -> '$' ); Wynik:
[{"a":1}]
Alternatywnie możemy użyć json_object() funkcja:
SELECT json_array( json_object( 'a', 1 ) ); Wynik:
[{"a":1}] Oto kilka innych elementów tablicy:
SELECT json_array( "Cat", json_object( 'a', 1 ), "Dog" ); Wynik:
["Cat",{"a":1},"Dog"] Przekazywanie tablic JSON
Podobnie jest z przekazywaniem tablic JSON:
SELECT json_array( '[ 9, 4, 7 ]' ); Wynik:
["[ 9, 4, 7 ]"]
W tym przypadku otrzymujemy tablicę JSON zawierającą ciąg przypominający inną tablicę.
Aby zwrócić rzeczywistą tablicę JSON, możemy przekazać nasz argument do json() funkcja:
SELECT json_array( json('[ 9, 4, 7 ]') ); Wynik:
[[9,4,7]]
Możemy również użyć -> operator:
SELECT json_array( '[ 9, 4, 7 ]' -> '$' ); Wynik:
[[9,4,7]]
Alternatywnie możemy przekazać wartości do innego json_array() :
SELECT json_array( json_array( 9, 4, 7 ) ); Wynik:
[[9,4,7]]
Oto kilka innych elementów tablicy:
SELECT json_array( "Cat", json_array( 9, 4, 7 ), "Dog" ); Wynik:
["Cat",[9,4,7],"Dog"]
Utwórz pustą tablicę
Wywołanie json_array() bez przekazywania żadnych argumentów daje w wyniku pustą tablicę:
SELECT json_array(); Wynik:
[]