Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Punkt końcowy analizy SQL w usłudze Microsoft Fabric
Magazyn w usłudze Microsoft Fabric
Baza danych SQL w usłudze Microsoft Fabric
Składnia JSON_OBJECT tworzy tekst obiektu JSON z zera lub więcej wyrażeń.
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
Wyrażenie znaku definiujące wartość nazwy klucza JSON.
value_expression
Wyrażenie definiujące wartość klucza JSON.
json_null_clause
Może służyć do kontrolowania JSON_OBJECT zachowania funkcji, gdy value_expression to NULL. Opcja NULL ON NULL konwertuje wartość SQL NULL na wartość null JSON podczas generowania wartości klucza JSON. Opcja ABSENT ON NULL pominie cały klucz, jeśli wartość jest NULL. Ustawieniem domyślnym dla tej opcji jest NULL ON NULL.
Wartość zwracana
Zwraca prawidłowy ciąg obiektu JSON typu nvarchar(max).
RETURNING json Jeśli opcja jest dołączona, obiekt JSON jest zwracany jako typ json.
Aby uzyskać więcej informacji o tym, co widzisz w danych wyjściowych funkcji JSON_OBJECT, zobacz następujące artykuły:
| Article | Description |
|---|---|
| Jak format JSON konwertuje typy danych programu SQL Server na typy danych JSON | Funkcja JSON_OBJECT używa reguł opisanych w tym artykule FOR JSON, aby przekonwertować typy danych SQL na typy JSON w danych wyjściowych obiektu JSON. |
| Jak w formacie JSON znaki specjalne i znaki sterujące są ucieczką znaków specjalnych | Funkcja JSON_OBJECT ucieczki znaków specjalnych i reprezentuje znaki sterujące w danych wyjściowych JSON zgodnie z opisem w tym artykule FOR JSON. |
Examples
Przykład 1
Poniższy przykład zwraca pusty obiekt JSON.
SELECT JSON_OBJECT();
Result
{}
Przykład 2
Poniższy przykład zwraca obiekt JSON z dwoma kluczami.
SELECT JSON_OBJECT('name':'value', 'type':1);
Result
{"name":"value","type":1}
Przykład 3
Poniższy przykład zwraca obiekt JSON z jednym kluczem, ponieważ wartość jednego z kluczy jest NULL i określono opcję ABSENT ON NULL.
SELECT JSON_OBJECT('name':'value', 'type':NULL ABSENT ON NULL);
Result
{"name":"value"}
Przykład 4
Poniższy przykład zwraca obiekt JSON z dwoma kluczami. Jeden klucz zawiera ciąg JSON, a drugi klucz zawiera tablicę JSON.
SELECT JSON_OBJECT('name':'value', 'type':JSON_ARRAY(1, 2));
Result
{"name":"value","type":[1,2]}
Przykład 5
Poniższy przykład zwraca obiekt JSON z dwoma kluczami. Jeden klucz zawiera ciąg JSON, a drugi klucz zawiera obiekt JSON.
SELECT JSON_OBJECT('name':'value', 'type':JSON_OBJECT('type_id':1, 'name':'a'));
Result
{"name":"value","type":{"type_id":1,"name":"a"}}
Przykład 6
Poniższy przykład zwraca obiekt JSON z danymi wejściowymi określonymi jako zmienne lub wyrażenia SQL.
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}
Przykład 7
Poniższy przykład zwraca obiekt JSON na wiersz w zapytaniu.
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":"śpiący"} |
| 52 | {"security_id":"AQUAAAAAAAUVAAAAoGXPfnhLm1/nfIdwAMgbAA==","login":WORKGROUP\\sqluser","status":"running"} |
Przykład 8
Poniższy przykład zwraca obiekt JSON jako typ json .
SELECT JSON_OBJECT("a":1 RETURNING json);
Result
{"a":1}