JSON_OBJECT (Transact-SQL)
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-analysslutpunkt i Microsoft Fabric
Warehouse i Microsoft Fabric
Konstruerar JSON-objekttext från noll eller fler uttryck.
Syntax
JSON_OBJECT ( [ <json_key_value> [,...n] ] [ json_null_clause ] )
<json_key_value> ::= json_key_name : value_expression
<json_null_clause> ::=
NULL ON NULL
| ABSENT ON NULL
Argument
json_key_name
Är ett teckenuttryck som definierar värdet för JSON-nyckelnamnet.
value_expression Är ett uttryck som definierar värdet för JSON-nyckeln.
json_null_clause
Kan användas för att styra beteendet för JSON_OBJECT funktion när value_expression är NULL
. Alternativet NULL ON NULL
konverterar SQL NULL
-värdet till ett JSON null-värde när JSON-nyckelvärdet genereras. Alternativet ABSENT ON NULL
utelämnar hela nyckeln om värdet är NULL
. Standardinställningen för det här alternativet är NULL ON NULL
.
Returvärde
Returnerar en giltig JSON-objektsträng med nvarchar(max) typ.
Mer information om vad du ser i utdata för funktionen JSON_OBJECT
finns i följande artiklar:
Hur FÖR JSON konverterar SQL Server-datatyper till JSON-datatyper (SQL Server)
FunktionenJSON_OBJECT
använder de regler som beskrivs i den härFOR JSON
artikeln för att konvertera SQL-datatyper till JSON-typer i JSON-objektutdata.How FOR JSON escapes special characters and control characters (SQL Server)
FunktionenJSON_OBJECT
undflyr specialtecken och representerar kontrolltecken i JSON-utdata enligt beskrivningen i den härFOR JSON
artikeln.
Exempel
Exempel 1
I följande exempel returneras ett tomt JSON-objekt.
SELECT JSON_OBJECT();
resultat
{}
Exempel 2
I följande exempel returneras ett JSON-objekt med två nycklar.
SELECT JSON_OBJECT('name':'value', 'type':1)
resultat
{"name":"value","type":1}
Exempel 3
I följande exempel returneras ett JSON-objekt med en nyckel eftersom värdet för en av nycklarna är NULL
och alternativet ABSENT ON NULL
anges.
SELECT JSON_OBJECT('name':'value', 'type':NULL ABSENT ON NULL)
resultat
{"name":"value"}
Exempel 4
I följande exempel returneras ett JSON-objekt med två nycklar. En nyckel innehåller en JSON-sträng och en annan nyckel innehåller en JSON-matris.
SELECT JSON_OBJECT('name':'value', 'type':JSON_ARRAY(1, 2))
resultat
{"name":"value","type":[1,2]}
Exempel 5
I följande exempel returneras ett JSON-objekt med två nycklar. En nyckel innehåller en JSON-sträng och en annan nyckel innehåller ett JSON-objekt.
SELECT JSON_OBJECT('name':'value', 'type':JSON_OBJECT('type_id':1, 'name':'a'))
resultat
{"name":"value","type":{"type_id":1,"name":"a"}}
Exempel 6
I följande exempel returneras ett JSON-objekt med de indata som anges som variabler eller SQL-uttryck.
DECLARE @id_key nvarchar(10) = N'id',@id_value nvarchar(64) = NEWID();
SELECT JSON_OBJECT('user_name':USER_NAME(), @id_key:@id_value, 'sid':(SELECT @@SPID))
resultat
{"user_name":"dbo","id":"E2CBD8B4-13C1-4D2F-BFF7-E6D722F095FD","sid":63}
Exempel 7
I följande exempel returneras ett JSON-objekt per rad i frågan.
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;
resultat
session_id |
info |
---|---|
51 |
{"security_id":"AQYAAAAAAAVQAAAAY/0dmFnai5oioQHh9eNArBIkYd4=","login":"NT SERVICE\\SQLTELEMETRY$SQL22" "status":"sovande"} |
52 | {"security_id":"AQUAAAAAAAUVAAAAoGXPfnhLm1/nfIdwAMgbAA==","login":WORKGROUP\\sqluser","status":"running"} |