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