JSON_ARRAY (Transact-SQL)
Si applica a: SQL Server 2022 (16.x) database SQL di Azure Istanza gestita di SQL di Azure
Costruisce il testo della matrice JSON da zero o più espressioni.
Sintassi
JSON_ARRAY ( [ <json_array_value> [,...n] ] [ <json_null_clause> ] )
<json_array_value> ::= value_expression
<json_null_clause> ::=
NULL ON NULL
| ABSENT ON NULL
Argomenti
json_array_value
Espressione che definisce il valore dell'elemento nella matrice JSON.
json_null_clause
Può essere usato per controllare il comportamento della funzione JSON_OBJECT
quando value_expression è NULL. L'opzione NULL ON NULL
converte il valore SQL NULL
in un valore JSON null
durante la generazione del valore dell'elemento nella matrice JSON. Se il valore è NULL, l'opzione ABSENT ON NULL
ometterà l'elemento nella matrice JSON. L'impostazione predefinita per questa opzione è ABSENT ON NULL
.
Valore restituito
Restituisce una stringa di matrice JSON valida di tipo nvarchar(max).
Per altre informazioni su quanto visualizzato nell'output della funzione JSON_ARRAY
, vedere gli articoli seguenti:
Modalità di conversione di FOR JSON dei tipi di dati SQL Server in tipi di dati JSON (SQL Server)
La funzioneJSON_ARRAY
usa le regole descritte in questo articoloFOR JSON
per convertire i tipi di dati SQL in tipi JSON nell'output della matrice JSON.Modalità di uso di FOR JSON delle sequenze di escape per i caratteri speciali e di controllo (SQL Server)
La funzioneJSON_ARRAY
usa sequenze di escape per i caratteri speciali e rappresenta i caratteri di controllo nell'output JSON come descritto in questo articoloFOR JSON
.
Esempi
Esempio 1
L'esempio seguente restituisce una matrice JSON vuota.
SELECT JSON_ARRAY();
Risultato
[]
Esempio 2
Nell'esempio seguente viene restituita una matrice JSON con quattro elementi.
SELECT JSON_ARRAY('a', 1, 'b', 2)
Risultato
["a",1,"b",2]
Esempio 3
Nell'esempio seguente viene restituita una matrice JSON con tre elementi poiché uno dei valori di input è NULL. Poiché json_null_clause viene omessa e l'impostazione predefinita per questa opzione è ABSENT ON NULL, in uno degli input il valore NULL non viene convertito in un valore null JSON.
SELECT JSON_ARRAY('a', 1, 'b', NULL)
Risultato
["a",1,"b"]
Esempio 4
Nell'esempio seguente viene restituita una matrice JSON con quattro elementi. Viene specificata l'opzione NULL ON NULL, in modo che qualsiasi valore NULL SQL nell'input venga convertito in valore null JSON nella matrice JSON.
SELECT JSON_ARRAY('a', 1, NULL, 2 NULL ON NULL)
Risultato
["a",1,null,2]
Esempio 5
Nell'esempio seguente viene restituita una matrice JSON con due elementi. Un elemento contiene una stringa JSON e un altro un oggetto JSON.
SELECT JSON_ARRAY('a', JSON_OBJECT('name':'value', 'type':1))
Risultato
["a",{"name":"value","type":1}]
Esempio 6
Nell'esempio seguente viene restituita una matrice JSON con tre elementi. Un elemento contiene una stringa JSON, un altro un oggetto JSON e il terzo una matrice JSON.
SELECT JSON_ARRAY('a', JSON_OBJECT('name':'value', 'type':1), JSON_ARRAY(1, null, 2 NULL ON NULL))
Risultato
["a",{"name":"value","type":1},[1,null,2]]
Esempio 7
L'esempio seguente restituisce una matrice JSON con gli input specificati come variabili o espressioni SQL.
DECLARE @id_value nvarchar(64) = NEWID();
SELECT JSON_ARRAY(1, @id_value, (SELECT @@SPID));
Risultato
[1,"4BEA4F9F-D169-414F-AF99-9270FDB2EA62",55]
Esempio 8
L'esempio seguente restituisce una matrice JSON per ogni riga della query.
SELECT s.session_id, JSON_ARRAY(s.host_name, s.program_name, s.client_interface_name)
FROM sys.dm_exec_sessions AS s
WHERE s.is_user_process = 1;
Risultato
session_id | info |
---|---|
52 | ["WIN16-VM","Microsoft SQL Server Management Studio - Query",".Net SqlClient Data Provider"] |
55 | ["WIN16-VM","Microsoft SQL Server Management Studio - Query",".Net SqlClient Data Provider"] |
56 | ["WIN19-VM","SQLServerCEIP",".Net SqlClient Data Provider"] |