sql >> Databasteknik >  >> RDS >> SQLite

SQLite JSON_ARRAY()

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

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:

[]

  1. Skapa en tabell i SQLite

  2. Lägga till (skjuta) och ta bort från en JSON-array i PostgreSQL 9.5+

  3. Hur man inaktiverar strikt SQL-läge i MySQL 5.7

  4. Olika sätt att fylla MySQL-användare