sql >> Databáze >  >> RDS >> SQLite

SQLite JSON_ARRAY()

V SQLite, json_array() funkce vrací správně vytvořené pole JSON na základě jeho argumentů.

Funkce přijímá nula nebo více argumentů a každý argument se stává prvkem ve výsledném poli.

Syntaxe

json_array(value1,value2,...)

Kde value1, value2, ... představuje prvky pole pro výsledné pole.

Příklad

Zde je jednoduchý příklad k demonstraci:

SELECT json_array( 9, 7, 12, 11 );

Výsledek:

[9,7,12,11]

Přidání uvozovek k číslu má za následek, že tento prvek pole bude řetězec JSON v uvozovkách:

SELECT json_array( 9, '7', 12, 11 );

Výsledek:

[9,"7",12,11]

Předávání objektů JSON

Předání argumentu s typem SQL TEXT má za následek řetězec JSON v uvozovkách, přičemž všechny popisky v uvozovkách budou uvozeny:

SELECT json_array( '{ "a" : 1 }' );

Výsledek:

["{ \"a\" : 1 }"]

Pokud nechceme, aby se to stalo, můžeme použít json() funkci poskytnout hodnotu jako platný dokument JSON:

SELECT json_array( json('{ "a" : 1 }') );

Výsledek:

[{"a":1}]

Dalším způsobem, jak to udělat, je použít -> SQLite operátor:

SELECT json_array( '{ "a" : 1 }' -> '$' );

Výsledek:

[{"a":1}]

Případně můžeme použít json_object() funkce:

SELECT json_array( json_object( 'a', 1 ) );

Výsledek:

[{"a":1}]

Zde je to s některými dalšími prvky pole:

SELECT json_array( "Cat", json_object( 'a', 1 ), "Dog" );

Výsledek:

["Cat",{"a":1},"Dog"]

Předávání polí JSON

Při předávání polí JSON je to podobné:

SELECT json_array( '[ 9, 4, 7 ]' );

Výsledek:

["[ 9, 4, 7 ]"]

V tomto případě získáme pole JSON, které obsahuje řetězec, který se podobá jinému poli.

Abychom vrátili skutečné pole JSON, můžeme předat náš argument do json() funkce:

SELECT json_array( json('[ 9, 4, 7 ]') );

Výsledek:

[[9,4,7]]

Můžeme také použít -> operátor:

SELECT json_array( '[ 9, 4, 7 ]' -> '$' );

Výsledek:

[[9,4,7]]

Případně můžeme předat hodnoty jinému json_array() :

SELECT json_array( json_array( 9, 4, 7 ) );

Výsledek:

[[9,4,7]]

Zde je to s některými dalšími prvky pole:

SELECT json_array( "Cat", json_array( 9, 4, 7 ), "Dog" );

Výsledek:

["Cat",[9,4,7],"Dog"]

Vytvořte prázdné pole

Volání json_array() bez předání jakýchkoli argumentů bude výsledkem prázdné pole:

SELECT json_array();

Výsledek:

[]

  1. Jak POW() funguje v MariaDB

  2. Jak psát složité dotazy v SQL

  3. Nejrychlejší způsob, jak provádět vnořené hromadné vkládání s použitím scope_identity()?

  4. Jak mohu exportovat schéma databáze v PostgreSQL?