[]
JsonValue
和JsonQuery
是用于处理 JSON 数据的 SQL 函数。JsonValue
用于从 JSON 数据中提取单个标量值,而 JsonQuery
则用于提取 JSON 对象或数组。
本文将为您详细介绍JsonValue
和JsonQuery
。
以下通过一个具体的 JSON 示例来说明 JsonValue
和 JsonQuery
的用法。
例如,我们来看下边这一段JSON:
{
"a": "[1,2]",
"b": [1, 2],
"c": "hi"
}
在这个例子中,可见a
和c
的值均为字符串类型,而b
的值是一个数组。
那么接下来,我们来看使用JsonValue
和JsonQuery
函数分别可以返回什么结果:
Path | JsonValue返回 | JsonQuery返回 |
---|---|---|
$ | NULL or error | { "a": "[1,2]", "b": [1,2], "c":"hi"} |
$.a | [1,2] | NULL or error |
$.b | NULL or error | [1,2] |
$.b[0] | 1 | NULL or error |
$.c | hi | NULL or error |
在实际系统中,JsonValue
和 JsonQuery
可以结合其他函数(如表值函数)使用。例如:
使用 JsonQuery
提取 JSON 数组 [1, 2]
。
使用表值函数 UnwindJson
将数组展开为多行数据。
首先使用 JsonQuery
返回 [1,2], 然后使用表值函数 UnwindJson
将其展开,如下图所示。
最终的结果为: