Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:SQL Server
Azure SQL-Datenbank
Azure SQL Managed Instance
SQL Analytics-Endpunkt in Microsoft Fabric
Warehouse in Microsoft Fabric
Erstellt JSON-Objekttext aus null oder mehr Ausdrücken.
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
Argumente
json_key_name
Ein Zeichenausdruck, der den Wert des JSON-Schlüsselnamens definiert.
value_expression: Ein Ausdruck, der den Wert des JSON-Schlüssels definiert
json_null_clause
Kann zum Steuern des Verhaltens der Funktion JSON_OBJECT verwendet werden, wenn value_expression gleich NULL
ist. Die Option NULL ON NULL
konvertiert den SQL-NULL
-Wert in einen JSON-Nullwert, wenn der JSON-Schlüsselwert generiert wird. Die Option ABSENT ON NULL
lässt den gesamten Schlüssel weg, wenn der Wert NULL
ist. Die Standardeinstellung für diese Option ist NULL ON NULL
.
Rückgabewert
Gibt eine gültige JSON-Objektzeichenfolge vom Typ nvarchar(max) zurück.
Weitere Informationen dazu, was in der Ausgabe der JSON_OBJECT
-Funktion angezeigt wird, finden Sie in den folgenden Artikeln:
So konvertiert FOR JSON SQL Server-Datentypen in JSON-Datentypen (SQL Server)
DieJSON_OBJECT
-Funktion verwendet die in diesemFOR JSON
-Artikel beschriebenen Regeln, um SQL-Datentypen in JSON-Typen in der JSON-Objektausgabe zu konvertieren.Schutz von Sonderzeichen und Steuerzeichen durch FOR JSON (SQL Server)
DieJSON_OBJECT
-Funktion schützt Sonderzeichen und stellt die Steuerzeichen in der JSON-Ausgabe wie in diesemFOR JSON
-Artikel beschrieben dar.
Beispiele
Beispiel 1
Im folgenden Beispiel wird ein leeres JSON-Objekt zurückgegeben.
SELECT JSON_OBJECT();
Ergebnis
{}
Beispiel 2
Im folgenden Beispiel wird ein JSON-Objekt mit zwei Schlüsseln zurückgegeben.
SELECT JSON_OBJECT('name':'value', 'type':1)
Ergebnis
{"name":"value","type":1}
Beispiel 3
Im folgenden Beispiel wird ein JSON-Objekt mit einem Schlüssel zurückgegeben, da der Wert für einen der Schlüssel NULL
und die Option ABSENT ON NULL
angegeben ist.
SELECT JSON_OBJECT('name':'value', 'type':NULL ABSENT ON NULL)
Ergebnis
{"name":"value"}
Beispiel 4
Im folgenden Beispiel wird ein JSON-Objekt mit zwei Schlüsseln zurückgegeben. Ein Schlüssel enthält eine JSON-Zeichenfolge, und der andere Schlüssel enthält ein JSON-Array.
SELECT JSON_OBJECT('name':'value', 'type':JSON_ARRAY(1, 2))
Ergebnis
{"name":"value","type":[1,2]}
Beispiel 5
Im folgenden Beispiel wird ein JSON-Objekt mit zwei Schlüsseln zurückgegeben. Ein Schlüssel enthält eine JSON-Zeichenfolge, der andere Schlüssel enthält ein JSON-Objekt.
SELECT JSON_OBJECT('name':'value', 'type':JSON_OBJECT('type_id':1, 'name':'a'))
Ergebnis
{"name":"value","type":{"type_id":1,"name":"a"}}
Beispiel 6
Im folgenden Beispiel wird ein JSON-Objekt mit den Eingaben zurückgegeben, die als Variablen oder SQL-Ausdrücke angegeben sind.
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))
Ergebnis
{"user_name":"dbo","id":"E2CBD8B4-13C1-4D2F-BFF7-E6D722F095FD","sid":63}
Beispiel 7
Im folgenden Beispiel wird ein JSON-Objekt pro Zeile in der Abfrage zurückgegeben.
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;
Ergebnis
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"} |