Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
Database SQL di
AzureIstanza gestita di SQL di
AzureEndpoint di analisi SQL in Microsoft Fabric
Warehouse in Microsoft Fabric
Database SQL in Microsoft Fabric
La JSON_OBJECT sintassi costruisce il testo dell'oggetto JSON da zero o più espressioni.
Syntax
JSON_OBJECT ( [ <json_key_value> [ , ...n ] ] [ json_null_clause ] [ RETURNING json ] )
<json_key_value> ::= json_key_name : value_expression
<json_null_clause> ::=
NULL ON NULL
| ABSENT ON NULL
Arguments
json_key_name
Espressione di caratteri che definisce il valore del nome della chiave JSON.
value_expression
Espressione che definisce il valore della chiave JSON.
json_null_clause
Può essere usato per controllare il comportamento della JSON_OBJECT funzione quando value_expression è NULL. L'opzione NULL ON NULL converte il valore SQL NULL in un valore Null JSON durante la generazione del valore della chiave JSON. L'opzione ABSENT ON NULL ometterà l'intera chiave se il valore è NULL. L'impostazione predefinita per questa opzione è NULL ON NULL.
Valore restituito
Restituisce una stringa di oggetto JSON valida di tipo nvarchar(max). Se l'opzione RETURNING json è inclusa, l'oggetto JSON viene restituito come tipo json .
Per altre informazioni su quanto visualizzato nell'output della funzione JSON_OBJECT, vedere gli articoli seguenti:
| Article | Description |
|---|---|
| Come FOR JSON converte i tipi di dati di SQL Server in tipi di dati JSON | La funzione JSON_OBJECT usa le regole descritte in questo articolo FOR JSON per convertire i tipi di dati SQL in tipi JSON nell'output dell'oggetto JSON. |
| Modalità di escape di FOR JSON di caratteri speciali e caratteri di controllo | La funzione JSON_OBJECT usa sequenze di escape per i caratteri speciali e rappresenta i caratteri di controllo nell'output JSON come descritto in questo articolo FOR JSON. |
Examples
Esempio 1
L'esempio seguente restituisce un oggetto JSON vuoto.
SELECT JSON_OBJECT();
Result
{}
Esempio 2
L'esempio seguente restituisce un oggetto JSON con due chiavi.
SELECT JSON_OBJECT('name':'value', 'type':1);
Result
{"name":"value","type":1}
Esempio 3
L'esempio seguente restituisce un oggetto JSON con una chiave poiché il valore di una delle chiavi è NULL ed è specificata l'opzione ABSENT ON NULL.
SELECT JSON_OBJECT('name':'value', 'type':NULL ABSENT ON NULL);
Result
{"name":"value"}
Esempio 4
L'esempio seguente restituisce un oggetto JSON con due chiavi. Una chiave contiene una stringa JSON e l'altra chiave contiene una matrice JSON.
SELECT JSON_OBJECT('name':'value', 'type':JSON_ARRAY(1, 2));
Result
{"name":"value","type":[1,2]}
Esempio 5
L'esempio seguente restituisce un oggetto JSON con due chiavi. Una chiave contiene una stringa JSON e l'altra chiave contiene un oggetto JSON.
SELECT JSON_OBJECT('name':'value', 'type':JSON_OBJECT('type_id':1, 'name':'a'));
Result
{"name":"value","type":{"type_id":1,"name":"a"}}
Esempio 6
L'esempio seguente restituisce un oggetto JSON con gli input specificati come variabili o espressioni SQL.
DECLARE @id_key AS NVARCHAR (10) = N'id', @id_value AS NVARCHAR (64) = NEWID();
SELECT JSON_OBJECT('user_name':USER_NAME(), @id_key:@id_value, 'sid':(SELECT @@SPID));
Result
{"user_name":"dbo","id":"E2CBD8B4-13C1-4D2F-BFF7-E6D722F095FD","sid":63}
Esempio 7
L'esempio seguente restituisce un oggetto JSON per ogni riga della query.
SELECT s.session_id,
JSON_OBJECT('security_id':s.security_id, 'login':s.login_name, 'status':s.status) AS info
FROM sys.dm_exec_sessions AS s
WHERE s.is_user_process = 1;
Result
session_id |
info |
|---|---|
| 51 |
{"security_id":"AQYAAAAAAAVQAAAAY/0dmFnai5oioQHh9eNArBIkYd4=","login":"NT SERVICE\\SQLTELEMETRY$SQL22","stato":"addormento"} |
| 52 | {"security_id":"AQUAAAAAAAUVAAAAoGXPfnhLm1/nfIdwAMgbAA==","login":WORKGROUP\\sqluser","status":"running"} |
Esempio 8
L'esempio seguente restituisce un oggetto JSON come tipo json .
SELECT JSON_OBJECT("a":1 RETURNING json);
Result
{"a":1}