I SQLite, json_array()
funktion returnerar en välformad JSON-array baserat på dess argument.
Funktionen accepterar noll eller fler argument, och varje argument blir ett element i den resulterande arrayen.
Syntax
json_array(value1,value2,...)
Där värde1, värde2, ...
representerar arrayelementen för den resulterande arrayen.
Exempel
Här är ett enkelt exempel att visa:
SELECT json_array( 9, 7, 12, 11 );
Resultat:
[9,7,12,11]
Att lägga till citattecken till ett nummer resulterar i att arrayelementet är en JSON-sträng med citattecken:
SELECT json_array( 9, '7', 12, 11 );
Resultat:
[9,"7",12,11]
Passerar JSON-objekt
Att skicka ett argument med SQL-typ TEXT resulterar i en citerad JSON-sträng, där alla etiketter med citattecken escapes:
SELECT json_array( '{ "a" : 1 }' );
Resultat:
["{ \"a\" : 1 }"]
Om vi inte vill att detta ska hända kan vi använda json()
funktion för att tillhandahålla värdet som ett giltigt JSON-dokument:
SELECT json_array( json('{ "a" : 1 }') );
Resultat:
[{"a":1}]
Ett annat sätt att göra det är att använda SQLites ->
operatör:
SELECT json_array( '{ "a" : 1 }' -> '$' );
Resultat:
[{"a":1}]
Alternativt kan vi använda json_object()
funktion:
SELECT json_array( json_object( 'a', 1 ) );
Resultat:
[{"a":1}]
Här är den med några andra arrayelement:
SELECT json_array( "Cat", json_object( 'a', 1 ), "Dog" );
Resultat:
["Cat",{"a":1},"Dog"]
Passerar JSON-arrayer
Det är en liknande sak när man skickar JSON-arrayer:
SELECT json_array( '[ 9, 4, 7 ]' );
Resultat:
["[ 9, 4, 7 ]"]
I det här fallet får vi en JSON-array som innehåller en sträng som liknar en annan array.
För att returnera en faktisk JSON-array kan vi skicka vårt argument till json()
funktion:
SELECT json_array( json('[ 9, 4, 7 ]') );
Resultat:
[[9,4,7]]
Vi kan också använda
SELECT json_array( '[ 9, 4, 7 ]' -> '$' );
Resultat:
[[9,4,7]]
Alternativt kan vi skicka värdena till en annan json_array()
:
SELECT json_array( json_array( 9, 4, 7 ) );
Resultat:
[[9,4,7]]
Här är den med några andra arrayelement:
SELECT json_array( "Cat", json_array( 9, 4, 7 ), "Dog" );
Resultat:
["Cat",[9,4,7],"Dog"]
Skapa en tom array
Anropar json_array()
utan att skicka några argument resulterar i en tom array:
SELECT json_array();
Resultat:
[]