SQL JSON_OBJECT() 函数
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"}}|
+------------------------------------------------+