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
Verwaltete Azure SQL-Instanz
SQL-Analyseendpunkt in Microsoft Fabric
Lagerhaus in Microsoft Fabric
SQL-Datenbank in Microsoft Fabric
Die JSON_OBJECT Syntax erstellt JSON-Objekttext aus null oder mehr Ausdrücken.
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
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 verwendet werden, um das Verhalten der JSON_OBJECT Funktion zu steuern, wenn value_expression ist NULL. Die Option NULL ON NULL konvertiert den SQL-Wert NULL beim Generieren des JSON-Schlüsselwerts in einen JSON-Nullwert. 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. Wenn die RETURNING json Option enthalten ist, wird das JSON-Objekt als JSON-Typ zurückgegeben.
Weitere Informationen dazu, was in der Ausgabe der JSON_OBJECT-Funktion angezeigt wird, finden Sie in den folgenden Artikeln:
| Artikel | Description |
|---|---|
| So konvertiert FOR JSON SQL Server-Datentypen in JSON-Datentypen | Die JSON_OBJECT-Funktion verwendet die in diesem FOR JSON-Artikel beschriebenen Regeln, um SQL-Datentypen in JSON-Typen in der JSON-Objektausgabe zu konvertieren. |
| So escapet FOR JSON Sonderzeichen und Steuerzeichen | Die JSON_OBJECT-Funktion schützt Sonderzeichen und stellt die Steuerzeichen in der JSON-Ausgabe wie in diesem FOR JSON-Artikel beschrieben dar. |
Examples
Beispiel 1
Im folgenden Beispiel wird ein leeres JSON-Objekt zurückgegeben.
SELECT JSON_OBJECT();
Result
{}
Beispiel 2
Im folgenden Beispiel wird ein JSON-Objekt mit zwei Schlüsseln zurückgegeben.
SELECT JSON_OBJECT('name':'value', 'type':1);
Result
{"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);
Result
{"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));
Result
{"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'));
Result
{"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 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}
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;
Result
session_id |
info |
|---|---|
| 51 |
{"security_id":"AQYAAAAAAAVQAAAAY/0dmFnai5oioQHh9eNArBIkYd4=","login":"NT SERVICE\\SQLTELEMETRY$SQL22","status":"schlafend"} |
| 52 | {"security_id":"AQUAAAAAAAUVAAAAoGXPfnhLm1/nfIdwAMgbAA==","login":WORKGROUP\\sqluser","status":"running"} |
Beispiel 8
Im folgenden Beispiel wird ein JSON-Objekt als JSON-Typ zurückgegeben.
SELECT JSON_OBJECT("a":1 RETURNING json);
Result
{"a":1}