JSON_OBJECT (Transact-SQL)
Gilt für: SQL Server 2022 (16.x) Azure SQL-DatenbankAzure SQL Managed Instance
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. Der Standardwert für diese Option ist NULL ON NULL.
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.
Rückgabewert
Gibt eine gültige JSON-Objektzeichenfolge vom Typ „nvarchar(max)“ zurück.
Bemerkungen
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"} |
Weitere Informationen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für