跳到主要内容

JSON_PATH_MATCH

Introduced or updated: v1.2.241

检查指定的 JSON 路径表达式是否匹配 JSON 数据中的某些条件。请注意,@@ 操作符与此函数同义。更多信息,请参见 JSON 操作符

语法

JSON_PATH_MATCH(<json_data>, <json_path_expression>)
  • json_data:指定要检查的 JSON 数据。可以是 JSON 对象或数组。
  • json_path_expression:指定要在 JSON 数据中检查的条件。此表达式描述了要匹配的特定路径或标准,例如验证 JSON 结构中的特定字段值是否满足某些条件。$ 符号代表 JSON 数据的根。它用于开始路径表达式,并表示 JSON 结构中的顶级对象。

返回类型

该函数返回:

  • 如果指定的 JSON 路径表达式与 JSON 数据中的条件匹配,则返回 true
  • 如果指定的 JSON 路径表达式与 JSON 数据中的条件不匹配,则返回 false
  • 如果 json_datajson_path_expression 为 NULL 或无效,则返回 NULL。

示例

-- 检查 JSON 路径 $.a 的值是否等于 1
SELECT JSON_PATH_MATCH(parse_json('{"a":1,"b":[1,2,3]}'), '$.a == 1');

┌────────────────────────────────────────────────────────────────┐
│ json_path_match(parse_json('{"a":1,"b":[1,2,3]}'), '$.a == 1')
├────────────────────────────────────────────────────────────────┤
true
└────────────────────────────────────────────────────────────────┘

-- 检查 JSON 路径 $.b 中数组的第一个元素是否大于 1
SELECT JSON_PATH_MATCH(parse_json('{"a":1,"b":[1,2,3]}'), '$.b[0] > 1');

┌──────────────────────────────────────────────────────────────────┐
│ json_path_match(parse_json('{"a":1,"b":[1,2,3]}'), '$.b[0] > 1')
├──────────────────────────────────────────────────────────────────┤
false
└──────────────────────────────────────────────────────────────────┘

-- 检查 JSON 路径 $.b 中的数组,从第二个到最后一个元素是否都大于或等于 2
SELECT JSON_PATH_MATCH(parse_json('{"a":1,"b":[1,2,3]}'), '$.b[1 to last] >= 2');

┌───────────────────────────────────────────────────────────────────────────┐
│ json_path_match(parse_json('{"a":1,"b":[1,2,3]}'), '$.b[1 to last] >= 2')
├───────────────────────────────────────────────────────────────────────────┤
true
└───────────────────────────────────────────────────────────────────────────┘

-- 如果 json_data 或 json_path_expression 为 NULL 或无效,则返回 NULL。
SELECT JSON_PATH_MATCH(parse_json('{"a":1,"b":[1,2,3]}'), NULL);

┌──────────────────────────────────────────────────────────┐
│ json_path_match(parse_json('{"a":1,"b":[1,2,3]}'), null)
├──────────────────────────────────────────────────────────┤
NULL
└──────────────────────────────────────────────────────────┘

SELECT JSON_PATH_MATCH(NULL, '$.a == 1');

┌───────────────────────────────────┐
│ json_path_match(null, '$.a == 1')
├───────────────────────────────────┤
NULL
└───────────────────────────────────┘
这篇文章对您有帮助吗?
Yes
No
开始使用 Databend Cloud
低成本
快速分析
多种数据源
弹性扩展
注册