Udostępnij za pośrednictwem


JSON_OBJECT (Transact-SQL)

Dotyczy:programu SQL ServerAzure SQL Databaseazure SQL Managed Instancepunktu końcowego analizy SQL w usłudze Microsoft FabricWarehouse w usłudze Microsoft Fabric

Tworzy tekst obiektu JSON z zera lub większej liczby wyrażeń.

Składnia

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

Argumenty

json_key_name

Jest wyrażeniem znaku definiującym wartość nazwy klucza JSON.

value_expression Jest wyrażeniem definiującym wartość klucza JSON.

json_null_clause

Może służyć do kontrolowania zachowania funkcji JSON_OBJECT, gdy value_expression jest NULL. Opcja NULL ON NULL konwertuje wartość NULL SQL 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 nvarchar(max) typu.

Aby uzyskać więcej informacji o tym, co widzisz w danych wyjściowych funkcji JSON_OBJECT, zobacz następujące artykuły:

Przykłady

Przykład 1

Poniższy przykład zwraca pusty obiekt JSON.

SELECT JSON_OBJECT();

wyników

{}

Przykład 2

Poniższy przykład zwraca obiekt JSON z dwoma kluczami.

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

wyników

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

wyników

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

wyników

{"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'))

wyników

{"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 nvarchar(10) = N'id',@id_value nvarchar(64) = NEWID();
SELECT JSON_OBJECT('user_name':USER_NAME(), @id_key:@id_value, 'sid':(SELECT @@SPID))

wyników

{"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;

wyników

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"}