In SQLite das json_array() Funktion gibt basierend auf ihren Argumenten ein wohlgeformtes JSON-Array zurück.
Die Funktion akzeptiert null oder mehr Argumente und jedes Argument wird zu einem Element im resultierenden Array.
Syntax
json_array(value1,value2,...)
Wobei value1, value2, ... repräsentiert die Array-Elemente für das resultierende Array.
Beispiel
Hier ist ein einfaches Beispiel zur Veranschaulichung:
SELECT json_array( 9, 7, 12, 11 ); Ergebnis:
[9,7,12,11]
Das Hinzufügen von Anführungszeichen zu einer Zahl führt dazu, dass dieses Array-Element eine in Anführungszeichen gesetzte JSON-Zeichenfolge ist:
SELECT json_array( 9, '7', 12, 11 ); Ergebnis:
[9,"7",12,11]
JSON-Objekte übergeben
Das Übergeben eines Arguments mit dem SQL-Typ TEXT führt zu einer JSON-Zeichenfolge in Anführungszeichen, wobei alle in Anführungszeichen gesetzten Bezeichnungen maskiert werden:
SELECT json_array( '{ "a" : 1 }' ); Ergebnis:
["{ \"a\" : 1 }"]
Wenn wir das nicht wollen, können wir den json() verwenden Funktion, um den Wert als gültiges JSON-Dokument bereitzustellen:
SELECT json_array( json('{ "a" : 1 }') ); Ergebnis:
[{"a":1}]
Eine andere Möglichkeit ist die Verwendung von -> von SQLite Betreiber:
SELECT json_array( '{ "a" : 1 }' -> '$' ); Ergebnis:
[{"a":1}]
Alternativ können wir das json_object() verwenden Funktion:
SELECT json_array( json_object( 'a', 1 ) ); Ergebnis:
[{"a":1}] Hier ist es mit einigen anderen Array-Elementen:
SELECT json_array( "Cat", json_object( 'a', 1 ), "Dog" ); Ergebnis:
["Cat",{"a":1},"Dog"] JSON-Arrays übergeben
Ähnlich verhält es sich beim Übergeben von JSON-Arrays:
SELECT json_array( '[ 9, 4, 7 ]' ); Ergebnis:
["[ 9, 4, 7 ]"]
In diesem Fall erhalten wir ein JSON-Array, das einen String enthält, der einem anderen Array ähnelt.
Um ein tatsächliches JSON-Array zurückzugeben, können wir unser Argument an json() übergeben Funktion:
SELECT json_array( json('[ 9, 4, 7 ]') ); Ergebnis:
[[9,4,7]]
Wir können auch den -> verwenden Betreiber:
SELECT json_array( '[ 9, 4, 7 ]' -> '$' ); Ergebnis:
[[9,4,7]]
Alternativ können wir die Werte an ein anderes json_array() übergeben :
SELECT json_array( json_array( 9, 4, 7 ) ); Ergebnis:
[[9,4,7]]
Hier ist es mit einigen anderen Array-Elementen:
SELECT json_array( "Cat", json_array( 9, 4, 7 ), "Dog" ); Ergebnis:
["Cat",[9,4,7],"Dog"]
Leeres Array erstellen
Aufruf von json_array() ohne Übergabe von Argumenten ergibt sich ein leeres Array:
SELECT json_array(); Ergebnis:
[]