Delen via


JSON_OBJECT (Transact-SQL)

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL Analytics-eindpunt in Microsoft FabricWarehouse in Microsoft Fabric

Hiermee maakt u JSON-objecttekst van nul of meer expressies.

Syntaxis

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

Argumenten

json_key_name

Is een tekenexpressie die de waarde van de JSON-sleutelnaam definieert.

value_expression Is een expressie die de waarde van de JSON-sleutel definieert.

json_null_clause

Kan worden gebruikt om het gedrag van JSON_OBJECT functie te bepalen wanneer value_expression is NULL. De optie NULL ON NULL de SQL-NULL-waarde converteert naar een JSON-null-waarde bij het genereren van de JSON-sleutelwaarde. De optie ABSENT ON NULL laat de hele sleutel weg als de waarde NULLis. De standaardinstelling voor deze optie is NULL ON NULL.

Retourwaarde

Retourneert een geldige JSON-objecttekenreeks van nvarchar(max) type.

Zie de volgende artikelen voor meer informatie over wat u ziet in de uitvoer van de functie JSON_OBJECT:

Voorbeelden

Voorbeeld 1

In het volgende voorbeeld wordt een leeg JSON-object geretourneerd.

SELECT JSON_OBJECT();

resultaat

{}

Voorbeeld 2

In het volgende voorbeeld wordt een JSON-object met twee sleutels geretourneerd.

SELECT JSON_OBJECT('name':'value', 'type':1)

resultaat

{"name":"value","type":1}

Voorbeeld 3

In het volgende voorbeeld wordt een JSON-object met één sleutel geretourneerd, omdat de waarde voor een van de sleutels is NULL en de optie ABSENT ON NULL is opgegeven.

SELECT JSON_OBJECT('name':'value', 'type':NULL ABSENT ON NULL)

resultaat

{"name":"value"}

Voorbeeld 4

In het volgende voorbeeld wordt een JSON-object met twee sleutels geretourneerd. De ene sleutel bevat een JSON-tekenreeks en een andere sleutel bevat een JSON-matrix.

SELECT JSON_OBJECT('name':'value', 'type':JSON_ARRAY(1, 2))

resultaat

{"name":"value","type":[1,2]}

Voorbeeld 5

In het volgende voorbeeld wordt een JSON-object met twee sleutels geretourneerd. De ene sleutel bevat een JSON-tekenreeks en een andere sleutel bevat een JSON-object.

SELECT JSON_OBJECT('name':'value', 'type':JSON_OBJECT('type_id':1, 'name':'a'))

resultaat

{"name":"value","type":{"type_id":1,"name":"a"}}

Voorbeeld 6

In het volgende voorbeeld wordt een JSON-object geretourneerd met de invoer die is opgegeven als variabelen of SQL-expressies.

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))

resultaat

{"user_name":"dbo","id":"E2CBD8B4-13C1-4D2F-BFF7-E6D722F095FD","sid":63}

Voorbeeld 7

In het volgende voorbeeld wordt een JSON-object per rij in de query geretourneerd.

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;

resultaat

session_id info
51 {"security_id":"AQYAAAAAAAVQAAAAY/0dmFnai5oioQHh9eNArBIkYd4=","login":"NT SERVICE\\SQLTELEMETRY$SQL22","status":"slaapstand"}
52 {"security_id":"AQUAAAAAAAUVAAAAoGXPfnhLm1/nfIdwAMgbAA==","login":WORKGROUP\\sqluser","status":"running"}