sql >> Database teknologi >  >> RDS >> SQLite

SQLite JSON_ARRAY()

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 -> operatør:

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:

[]

  1. Oracle SQL:Sådan bruger du mere end 1000 elementer i en IN-klausul

  2. Sådan transponeres rækker til kolonner dynamisk i MySQL

  3. Sådan fungerer CHAR()-funktionen i SQL Server (T-SQL)

  4. Sådan omdøbes databasen i SQL Server - SQL Server / TSQL Tutorial Del 26