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