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
广告