Aracılığıyla paylaş


JSON_OBJECT (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiMicrosoft Fabric'te SQL analiz uç noktasıMicrosoft Fabric'te ambarMicrosoft Fabric'te SQL veritabanı

Söz JSON_OBJECT dizimi, sıfır veya daha fazla ifadeden JSON nesne metni oluşturur.

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

JSON anahtar adının değerini tanımlayan karakter ifadesi.

value_expression

JSON anahtarının değerini tanımlayan ifade.

json_null_clause

value_expression JSON_OBJECTolduğunda işlevin NULL davranışını denetlemek için kullanılabilir. seçeneği NULL ON NULL , JSON anahtar değeri oluşturulurken SQL NULL değerini bir JSON null değerine dönüştürür. ABSENT ON NULL seçeneği, değer NULLise anahtarın tamamını atlar. Bu seçeneğin varsayılan ayarı NULL ON NULL.

Dönüş değeri

Nvarchar(max) türünde geçerli bir JSON nesne dizesi döndürür. RETURNING json Seçenek dahil edilirse JSON nesnesi json türü olarak döndürülür.

JSON_OBJECT işlevinin çıkışında gördükleriniz hakkında daha fazla bilgi için aşağıdaki makalelere bakın:

Article Description
FOR JSON, SQL Server veri türlerini JSON veri türlerine dönüştürme JSON_OBJECT işlevi, SQL veri türlerini JSON nesne çıkışındaki JSON türlerine dönüştürmek için bu FOR JSON makalede açıklanan kuralları kullanır.
FOR JSON özel karakterlerden ve denetim karakterlerinden nasıl kaçınıyor? JSON_OBJECT işlevi özel karakterlerden kaçar ve bu FOR JSON makalede açıklandığı gibi JSON çıkışındaki denetim karakterlerini temsil eder.

Examples

Örnek 1

Aşağıdaki örnek boş bir JSON nesnesi döndürür.

SELECT JSON_OBJECT();

Result

{}

Örnek 2

Aşağıdaki örnek, iki anahtara sahip bir JSON nesnesi döndürür.

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

Result

{"name":"value","type":1}

Örnek 3

Aşağıdaki örnek, anahtarlardan birinin değeri NULL olduğundan ve ABSENT ON NULL seçeneği belirtildiğinden bir anahtara sahip bir JSON nesnesi döndürür.

SELECT JSON_OBJECT('name':'value', 'type':NULL ABSENT ON NULL);

Result

{"name":"value"}

Örnek 4

Aşağıdaki örnek, iki anahtara sahip bir JSON nesnesi döndürür. Bir anahtar bir JSON dizesi, başka bir anahtar ise bir JSON dizisi içerir.

SELECT JSON_OBJECT('name':'value', 'type':JSON_ARRAY(1, 2));

Result

{"name":"value","type":[1,2]}

Örnek 5

Aşağıdaki örnek, iki anahtarlı bir JSON nesnesi döndürür. Bir anahtar bir JSON dizesi, başka bir anahtar ise bir JSON nesnesi içerir.

SELECT JSON_OBJECT('name':'value', 'type':JSON_OBJECT('type_id':1, 'name':'a'));

Result

{"name":"value","type":{"type_id":1,"name":"a"}}

Örnek 6

Aşağıdaki örnek, değişkenler veya SQL ifadeleri olarak belirtilen girişlere sahip bir JSON nesnesi döndürür.

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}

Örnek 7

Aşağıdaki örnek, sorgudaki satır başına bir JSON nesnesi döndürür.

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","durum":"uyuyor"}
52 {"security_id":"AQUAAAAAAAUVAAAAoGXPfnhLm1/nfIdwAMgbAA==","login":WORKGROUP\\sqluser","status":"running"}

Örnek 8

Aşağıdaki örnek json türü olarak bir JSON nesnesi döndürür.

SELECT JSON_OBJECT("a":1 RETURNING json);

Result

{"a":1}
  • SQL Server'da JSON verilerini