Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-analysslutpunkt i Microsoft Fabric
Lager i Microsoft Fabric
SQL-databas i Förhandsversion av Microsoft Fabric
Syntaxen JSON_OBJECT konstruerar JSON-objekttext från noll eller fler uttryck.
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
Ett teckenuttryck som definierar värdet för JSON-nyckelnamnet.
value_expression
Ett uttryck som definierar värdet för JSON-nyckeln.
json_null_clause
Kan användas för att styra funktionsbeteendet JSON_OBJECT när value_expression är NULL. Alternativet NULL ON NULL konverterar SQL-värdet NULL till ett JSON-nullvä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 av typen nvarchar(max). Om alternativet RETURNING json ingår returneras JSON-objektet som json-typ .
Mer information om vad du ser i utdata för funktionen JSON_OBJECT finns i följande artiklar:
| Article | Description |
|---|---|
| Så här konverterar FÖR JSON SQL Server-datatyper till JSON-datatyper | Funktionen JSON_OBJECT använder de regler som beskrivs i den här FOR JSON artikeln för att konvertera SQL-datatyper till JSON-typer i JSON-objektutdata. |
| Hur FÖR JSON undflyr specialtecken och kontrolltecken | Funktionen JSON_OBJECT undflyr specialtecken och representerar kontrolltecken i JSON-utdata enligt beskrivningen i den här FOR JSON artikeln. |
Examples
Exempel 1
I följande exempel returneras ett tomt JSON-objekt.
SELECT JSON_OBJECT();
Result
{}
Exempel 2
I följande exempel returneras ett JSON-objekt med två nycklar.
SELECT JSON_OBJECT('name':'value', 'type':1);
Result
{"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);
Result
{"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));
Result
{"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'));
Result
{"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 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}
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;
Result
session_id |
info |
|---|---|
| 51 |
{"security_id":"AQYAAAAAAAVQAAAAY/0dmFnai5oioQHh9eNArBIkYd4=","login":"NT SERVICE\\SQLTELEMETRY$SQL22""status":"sleeping"} |
| 52 | {"security_id":"AQUAAAAAAAUVAAAAoGXPfnhLm1/nfIdwAMgbAA==","login":WORKGROUP\\sqluser","status":"running"} |
Exempel 8
I följande exempel returneras ett JSON-objekt som json-typ .
SELECT JSON_OBJECT("a":1 RETURNING json);
Result
{"a":1}