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