You need to enable JavaScript to run this app.
文档中心
日志服务

日志服务

复制全文
下载 pdf
SQL 函数
JSON 函数
复制全文
下载 pdf
JSON 函数
本文介绍日志服务支持的 JSON 函数语法及常见场景的使用示例。​
函数列表​
说明​
  • 在日志服务分析语句(SQL 语句)中,需要使用单引号('')包裹代表字符串的字符,无符号包裹或被双引号("")包裹的字符为字段名或列名。例如'time' 代表字符串,time 或 "time" 代表字段名或列名。​
  • 当解析字符串为 JSON 类型失败时,将返回 NULL。​
  • 如果采集时JSON 日志被截断,那么在使用 JSON 函数进行分析时,系统将报错且中止分析。针对该错误,您可以使用 TRY 表达式捕获异常信息,使得系统继续执行分析操作。例如* | SELECT message, TRY(JSON_PARSE(message))。​
​
函数名称​
函数语法​
说明​
JSON_ARRAY_CONTAINS(KEY, value)​
判断 JSON 数组中是否存在特定的元素。​
JSON_ARRAY_GET(KEY, index)​
根据指定的 JSON 下标提取对应的 JSON 元素。​
JSON_ARRAY_LENGTH(KEY)​
计算 JSON 数组长度,即 JSON 元素数量。​
json_EXTRACT(KEY, json_path)​
从 JSON 对象或 JSON 数组中提取一组 JSON 值(数组或对象)。​
JSON_EXTRACT_SCALAR(json_string, json_path)​
从 JSON 形式的字符串中提取一组标量值(字符串、整数或布尔值)。​
JSON_FORMAT(KEY)​
将 JSON 类型转化成字符串类型。​
JSON_PARSE(KEY)​
将 JSON 格式的字符串转化成 JSON 类型。​
JSON_SIZE(KEY, json_path)​
计算 JSON 对象或 JSON 数组中元素的数量。​
​
JSON_ARRAY_CONTAINS 函数​
JSON_ARRAY_CONTAINS 函数用于判断 JSON 数组中是否存在特定的元素。​
函数语法​
  • 语法格式​
  • ​
    JSON_ARRAY_CONTAINS(KEY, value)​
    ​
  • 参数说明​
  • ​
    参数​
    说明​
    KEY​
    日志字段、表达式,其值为 JSON 数组格式的字符串。​
    value​
    JSON 元素。​
    ​
  • 返回值说明​
  • 返回值为 Boolean 类型。​
函数示例​
  • 场景​
  • 判断 JSON 数组[5, 10, 3]中是否包含 1。​
  • 检索和分析语句​
  • ​
    * | SELECT JSON_ARRAY_CONTAINS('[5, 10, 3]', '1')​
    ​
  • 检索和分析结果​
  • ​​​
JSON_ARRAY_GET 函数​
JSON_ARRAY_GET 函数将根据指定的 JSON 下标提取对应的 JSON 元素。​
函数语法​
  • 语法说明​
  • ​
    JSON_ARRAY_GET(KEY, index)​
    ​
  • 参数说明​
  • ​
    参数​
    说明​
    KEY​
    日志字段、表达式,其值为 JSON 数组格式的字符串。​
    index​
    JSON 下标,从 0 开始。​
    ​
  • 返回值说明​
  • 返回值为 Varchar 类型。​
函数示例​
  • 场景​
  • 返回 JSON 数组["mon", [0, 8], "ten"]中下标为 2 的元素。​
  • 检索和分析语句​
  • ​
    * | SELECT JSON_ARRAY_GET('["mon", [0, 8], "ten"]', 2)​
    ​
  • 检索和分析结果​
  • ​​​
JSON_ARRAY_LENGTH 函数​
JSON_ARRAY_LENGTH 函数用于计算 JSON 数组长度,即 JSON 元素数量。​
函数语法​
  • 语法格式​
  • ​
    JSON_ARRAY_LENGTH(KEY)​
    ​
  • 参数说明​
  • ​
    参数​
    说明​
    KEY​
    日志字段、表达式,其值为 JSON 数组格式的字符串。​
    ​
  • 返回值说明​
  • 返回值为 Bigint 类型。​
函数示例​
  • 场景​
  • 计算json_test02字段值中 JSON 元素的数量。​
  • 日志样例​
  • ​​​
  • 检索和分析语句​
  • ​
    * | SELECT JSON_ARRAY_LENGTH(json_test02)​
    ​
  • 检索和分析结果​
  • ​​​
JSON_EXTRACT 函数​
JSON_EXTRACT 函数用于从 JSON 对象或 JSON 数组中提取一组 JSON 值(数组或对象)。​
说明​
如果分析非法的 JSON 类型,JSON_EXTRACT 函数将报错,建议您使用 JSON_EXTRACT_SCALAR 函数。​
函数语法​
  • 函数格式​
  • ​
    JSON_EXTRACT(KEY, json_path)​
    ​
  • 参数说明​
  • ​
    参数​
    说明​
    KEY​
    参数值为 JSON 对象或 JSON 数组。​
    json_path​
    JSON 路径,格式为$.store.book[0].title。​
    ​
  • 返回值说明​
  • 返回值为 String 类型。​
函数示例​
  • 场景​
  • 获取 JSON 类型字符串 '[{"SIZE":100},{"STATUS":200}]' 中 SIZE 字段的值。​
  • 检索和分析语句​
  • ​
    * | SELECT JSON_EXTRACT('[{"SIZE":100},{"STATUS":200}]', '$.0.SIZE')​
    ​
  • 检索和分析结果​
  • ​​​
JSON_EXTRACT_SCALAR 函数​
JSON_EXTRACT_SCALAR 函数用于从 JSON 形式的字符串中提取一组标量值(字符串、整数或布尔值)。​
函数语法​
  • 语法格式​
  • ​
    JSON_EXTRACT_SCALAR(json_string, json_path)​
    ​
  • 参数说明​
  • ​
    参数​
    说明​
    json_string​
    参数值为 JSON 对象或 JSON 数组形式的字符串。​
    json_path​
    JSON 路径,格式为 $.store.book[0].title。​
    ​
  • 返回值说明​
  • 返回值为 Varchar 类型。​
函数示例​
  • 场景​
  • 从 JSON 形式的字符串 [{"SIZE":100},{"STATUS":200}] 中获取 STATUS 字段的值。​
  • 检索和分析语句​
  • ​
    *|SELECT JSON_EXTRACT_SCALAR('[{"SIZE":100},{"STATUS":200}]','$.1.STATUS')​
    ​
  • 检索和分析结果​
  • ​​​
JSON_FORMAT 函数​
JSON_FORMAT 函数用于将 JSON 类型转化成字符串类型。​
函数语法​
  • 语法格式​
  • ​
    JSON_FORMAT(KEY)​
    ​
  • 参数说明​
  • ​
    参数​
    说明​
    KEY​
    参数值为 JSON 类型。​
    ​
  • 返回值说明​
  • 返回值类型为 Varchar 类型。​
函数示例​
  • 场景​
  • 将 JSON 数组 [100,200,300] 转换为字符串 [100, 200, 300]。​
  • 检索和分析语句​
  • ​
    * | SELECT JSON_FORMAT(JSON_PARSE('[100, 200, 300]'))​
    ​
  • 检索和分析结果​
  • ​​​
JSON_PARSE 函数​
JSON_PARSE 函数只用于将 JSON 格式的字符串转化成 JSON 类型。一般情况下,JSON_PARSE 函数使用意义不大,如果您需要从 JSON 中提取值,建议使用JSON_EXTRACT_SCALAR函数。​
函数语法​
  • 语法格式​
  • ​
    JSON_PARSE(KEY)​
    ​
  • 参数说明​
  • ​
    参数​
    说明​
    KEY​
    值为 JSON 格式的字符串。​
    ​
  • 返回值说明​
  • 返回值为 JSON 类型。​
函数示例​
  • 场景​
  • 提取 JSON 形式的字符串 {"SIZE":100,"STATUS":200} 中的各个子字段。​
  • 检索和分析语句​
  • ​
    *| SELECT MAP_KEYS(TRY_CAST(JSON_PARSE('{"SIZE":100,"STATUS":200}') AS MAP(varchar, json)))​
    ​
  • 检索和分析结果​
  • ​​​
JSON_SIZE 函数​
JSON_SIZE 函数用于计算 JSON 对象或 JSON 数组中元素的数量。​
函数语法​
  • 语法格式​
  • ​
    JSON_SIZE(KEY, json_path)​
    ​
  • 参数说明​
  • ​
    参数​
    说明​
    KEY​
    参数值为 JSON 对象或 JSON 数组形式的字符串。​
    json_path​
    JSON 路径,格式为 $.store.book[0].title。​
    ​
  • 返回值说明​
  • 返回值为 Bigint 类型。​
函数示例​
  • 场景​
  • 返回 JSON 形式的字符串 [{"SIZE":100,"STATUS":200,"LEN":1}] 中特定路径元素的数量。​
  • 检索和分析语句​
  • ​
    * | SELECT JSON_SIZE('[{"SIZE":100,"STATUS":200,"LEN":1}]', '$.0.LEN')​
    ​
  • 检索和分析结果​
  • ​​​
​
最近更新时间:2026.08.28 16:45:49
这个页面对您有帮助吗?
有用
有用
无用
无用