I SQLite er json_array()
funktion returnerer et velformet JSON-array baseret på dets argumenter.
Funktionen accepterer nul eller flere argumenter, og hvert argument bliver et element i det resulterende array.
Syntaks
json_array(value1,value2,...)
Hvor værdi1, værdi2, ...
repræsenterer array-elementerne for det resulterende array.
Eksempel
Her er et simpelt eksempel til at demonstrere:
SELECT json_array( 9, 7, 12, 11 );
Resultat:
[9,7,12,11]
Tilføjelse af anførselstegn til et tal resulterer i, at det array-element er en JSON-streng med citater:
SELECT json_array( 9, '7', 12, 11 );
Resultat:
[9,"7",12,11]
Beståelse af JSON-objekter
Sending af et argument med SQL-typen TEXT resulterer i en citeret JSON-streng, hvor alle etiketter med anførselstegn escapes:
SELECT json_array( '{ "a" : 1 }' );
Resultat:
["{ \"a\" : 1 }"]
Hvis vi ikke ønsker, at dette skal ske, kan vi bruge json()
funktion til at angive værdien som et gyldigt JSON-dokument:
SELECT json_array( json('{ "a" : 1 }') );
Resultat:
[{"a":1}]
En anden måde at gøre det på er at bruge SQLites ->
operatør:
SELECT json_array( '{ "a" : 1 }' -> '$' );
Resultat:
[{"a":1}]
Alternativt kan vi bruge json_object()
funktion:
SELECT json_array( json_object( 'a', 1 ) );
Resultat:
[{"a":1}]
Her er det med nogle andre array-elementer:
SELECT json_array( "Cat", json_object( 'a', 1 ), "Dog" );
Resultat:
["Cat",{"a":1},"Dog"]
Beståer JSON-arrays
Det er en lignende ting, når du sender JSON-arrays:
SELECT json_array( '[ 9, 4, 7 ]' );
Resultat:
["[ 9, 4, 7 ]"]
I dette tilfælde får vi et JSON-array, der indeholder en streng, der ligner et andet array.
For at returnere et faktisk JSON-array kan vi videregive vores argument til json()
funktion:
SELECT json_array( json('[ 9, 4, 7 ]') );
Resultat:
[[9,4,7]]
Vi kan også bruge
SELECT json_array( '[ 9, 4, 7 ]' -> '$' );
Resultat:
[[9,4,7]]
Alternativt kan vi sende værdierne til en anden json_array()
:
SELECT json_array( json_array( 9, 4, 7 ) );
Resultat:
[[9,4,7]]
Her er det med nogle andre array-elementer:
SELECT json_array( "Cat", json_array( 9, 4, 7 ), "Dog" );
Resultat:
["Cat",[9,4,7],"Dog"]
Opret et tomt array
Kalder json_array()
uden at sende nogen argumenter resulterer det i et tomt array:
SELECT json_array();
Resultat:
[]