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:
[]