SQL - JSON_OBJECT() 函式



SQL 的JSON_OBJECT()函式用於根據引數的SQL表示式的結果建立JSON物件。它從零個或多個表示式構造JSON物件的文字。

JSON物件包含鍵值對。每個鍵在JSON中都表示為字串,值可以是任何型別。鍵和值用冒號分隔,每個鍵值對用逗號分隔。

花括號 { 表示JSON物件。

語法

以下是SQL JSON_OBJECT()函式的語法:

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 

引數

引數分為三種類型:

  • json_key_name - 它是一個字元表示式,定義JSON鍵名值。

  • value_expression - 它是一個表示式,定義JSON鍵的值。

  • json_null_clause - 當value_expression為NULL時,它可以用來控制JSON_OBJECT函式的行為。當生成JSON鍵值時,NULL ON NULL選項將SQL NULL值轉換為JSON null值。ABSENT ON NULL選項如果值為NULL,則忽略整個鍵。

返回值

它返回一個有效的nvarchar(max)型別的JSON物件字串。

示例

以下示例返回具有兩個鍵的JSON物件:

SELECT JSON_OBJECT('name':'value', 'type':4) AS JSON_OBJECT;

輸出

這將顯示以下結果:

+-----------------------------+
|      JSON_OBJECT            |
+-----------------------------+
|  {"name":"value","type":4}  |
+-----------------------------+

示例

以下示例返回一個只有一個鍵的JSON物件,因為其中一個鍵的值為NULL,並且指定了ABSENT ON NULL選項:

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

輸出

這將顯示以下結果:

+-------------------+
| JSON_OBJECT       |
+-------------------+
| {"name":"value"}  |
+-------------------+

示例

以下示例返回一個空的JSON物件:

SELECT JSON_OBJECT() AS JSON_OBJECT;

輸出

這將顯示以下結果:

+-------------------+
| JSON_OBJECT       |
+-------------------+
|       {}          |
+-------------------+ 

示例

以下示例返回一個具有兩個鍵的JSON物件。一個鍵包含JSON字串,另一個鍵包含JSON陣列:

SELECT JSON_OBJECT('name':'value', 'type':JSON_ARRAY(4, 6)) AS JSON_OBJECT;

輸出

這將顯示以下結果:

+-----------------------------+
|      JSON_OBJECT            |
+-----------------------------+
|{"name":"value","type":[4,6]}|
+-----------------------------+

示例

以下示例返回一個具有兩個鍵的JSON物件。一個鍵包含JSON字串,另一個鍵包含JSON物件:

SELECT JSON_OBJECT('name':'value', 'type':JSON_OBJECT('type_id':4, 'name':'t')) AS JSON_OBJECT;

輸出

這將顯示以下結果:

+------------------------------------------------+
|               JSON_OBJECT                      |
+------------------------------------------------+
|{"name":"value","type":{"type_id":4,"name":"t"}}|
+------------------------------------------------+
sql-json-functions.htm
廣告