SQLite
 sql >> Datenbank >  >> RDS >> SQLite

SQLite JSON_ARRAY()

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:

[]