In SQLite is de json_array()
functie retourneert een goed gevormde JSON-array op basis van zijn argumenten.
De functie accepteert nul of meer argumenten en elk argument wordt een element in de resulterende array.
Syntaxis
json_array(value1,value2,...)
Waar value1, value2, ...
vertegenwoordigt de array-elementen voor de resulterende array.
Voorbeeld
Hier is een eenvoudig voorbeeld om te demonstreren:
SELECT json_array( 9, 7, 12, 11 );
Resultaat:
[9,7,12,11]
Door aanhalingstekens aan een getal toe te voegen, wordt dat array-element een JSON-tekenreeks tussen aanhalingstekens:
SELECT json_array( 9, '7', 12, 11 );
Resultaat:
[9,"7",12,11]
JSON-objecten doorgeven
Het doorgeven van een argument met het SQL-type TEXT resulteert in een JSON-tekenreeks tussen aanhalingstekens, waarbij eventuele labels tussen aanhalingstekens worden geëscaped:
SELECT json_array( '{ "a" : 1 }' );
Resultaat:
["{ \"a\" : 1 }"]
Als we niet willen dat dit gebeurt, kunnen we de json()
. gebruiken functie om de waarde op te geven als een geldig JSON-document:
SELECT json_array( json('{ "a" : 1 }') );
Resultaat:
[{"a":1}]
Een andere manier om dit te doen is door SQLite's ->
. te gebruiken operator:
SELECT json_array( '{ "a" : 1 }' -> '$' );
Resultaat:
[{"a":1}]
Als alternatief kunnen we de json_object()
. gebruiken functie:
SELECT json_array( json_object( 'a', 1 ) );
Resultaat:
[{"a":1}]
Hier is het met enkele andere array-elementen:
SELECT json_array( "Cat", json_object( 'a', 1 ), "Dog" );
Resultaat:
["Cat",{"a":1},"Dog"]
JSON-arrays doorgeven
Hetzelfde geldt voor het doorgeven van JSON-arrays:
SELECT json_array( '[ 9, 4, 7 ]' );
Resultaat:
["[ 9, 4, 7 ]"]
In dit geval krijgen we een JSON-array die een tekenreeks bevat die lijkt op een andere array.
Om een daadwerkelijke JSON-array terug te geven, kunnen we ons argument doorgeven aan de json()
functie:
SELECT json_array( json('[ 9, 4, 7 ]') );
Resultaat:
[[9,4,7]]
We kunnen ook de ->
. gebruiken operator:
SELECT json_array( '[ 9, 4, 7 ]' -> '$' );
Resultaat:
[[9,4,7]]
Als alternatief kunnen we de waarden doorgeven aan een andere json_array()
:
SELECT json_array( json_array( 9, 4, 7 ) );
Resultaat:
[[9,4,7]]
Hier is het met enkele andere array-elementen:
SELECT json_array( "Cat", json_array( 9, 4, 7 ), "Dog" );
Resultaat:
["Cat",[9,4,7],"Dog"]
Maak een lege array
json_array()
. aanroepen zonder het doorgeven van argumenten resulteert in een lege array:
SELECT json_array();
Resultaat:
[]