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