tencent cloud

日志服务

动态与公告
产品动态
公告
新手指引
产品简介
产品概述
产品优势
地域和访问域名
规格与限制
基本概念
购买指南
计费概述
产品定价
按量计费(后付费)
欠费说明
清理日志服务资源
成本优化
常见问题
快速入门
一分钟入门指南
入门指南
使用 Demo 日志快速体验 CLS
操作指南
资源管理
权限管理
日志采集
指标采集
日志存储
指标存储
检索分析(日志主题)
检索分析(指标主题)
仪表盘
数据处理
投递与消费
监控告警
云产品中心
DataSight 独立控制台
历史文档
实践教程
日志采集
检索分析
仪表盘
监控告警
投递和消费
成本优化
开发者指南
通过 iframe 内嵌 CLS(旧方案)
通过 Grafana 使用 CLS
API 文档
History
Introduction
API Category
Making API Requests
Topic Management APIs
Log Set Management APIs
Index APIs
Topic Partition APIs
Machine Group APIs
Collection Configuration APIs
Log APIs
Metric APIs
Alarm Policy APIs
Data Processing APIs
Kafka Protocol Consumption APIs
CKafka Shipping Task APIs
Kafka Data Subscription APIs
COS Shipping Task APIs
SCF Delivery Task APIs
Scheduled SQL Analysis APIs
COS Data Import Task APIs
Data Types
Error Codes
常见问题
健康监测问题解释
采集相关
检索分析相关
其他问题
服务等级协议
CLS 政策
隐私协议
数据处理和安全协议
联系我们
词汇表

字典和列表函数

PDF
聚焦模式
字号
最后更新时间: 2025-12-03 18:30:47

字典函数

json_add 函数

函数定义

json 中新增节点。

语法描述

json_add(key,data)

参数说明

参数名称
参数描述
参数类型
是否必须
参数默认值
参数取值范围
key
json 对应的 key
string
-
-
data
补充新的节点
dict
-
-

示例

原始日志:
{"content": "{\\"a\\":{\\"b\\":{\\"c\\":\\"cc\\"}}}"}
加工规则:
json_add("content", {"a":{"b":{"d":"dd"}}})
加工结果:
{"content": "{\\"a\\":{\\"b\\":{\\"c\\":\\"cc\\",\\"d\\":\\"dd\\"}}}"}

json_edit 函数

函数定义

增加/修改/删除字典中的键值对,返回 dict。

语法描述

json_edit("result", path="", key="",value="333",index=1,mode="edit")

参数说明

参数名称
参数描述
参数类型
是否必须
参数默认值
参数取值范围
field
嵌套 json 对应的 key
string
-
-
path
需要删除或修改目标字段对应的目录,删除或修改的字段为嵌套 json 的第一层级时,不填;对数组元素操作时填写至数组对应的 key,支持 JMES 语法
string
-
-
key
需要删除或修改的目标字段,当对数组元素操作时,无需填写
string
-
-
value
需要设定的新值,修改值时才需要填写
string
-
-
index
对数组操作时填写该字段,数组元素从1开始
number
0
-
mode
模式。修改:edit,删除:move。默认 move
string
move
-

示例1:修改指定节点的值

原始日志:
{"content":"{\\"p9\\":[\\"0.0\\",\\"0.0\\"],\\"p18\\":\\"CN\\"}","time":"1650440364"}

加工规则:
json_edit("content", path="", key="p18", value="hello", mode="edit")
加工结果:
{"content":"{\\"p9\\":[\\"0.0\\",\\"0.0\\"],\\"p18\\":\\"hello\\"}", "time":"1650440364"}

示例2:修改指定节点的值(多层级)

原始日志:
{"content":"{\\"p9\\":[\\"0.0\\",\\"0.0\\"],\\"p18\\":\\"CN\\",\\"info\\":{\\"province\\":\\"hubei\\",\\"geo\\":{\\"long\\":\\"111\\",\\"lati\\":\\"222\\"}}}","time":"1650440364"}
加工规则:
json_edit("content", path="info.geo", key="long", value="333", mode="edit")
加工结果:
{"content":"{\\"p9\\":[\\"0.0\\",\\"0.0\\"],\\"p18\\":\\"CN\\",\\"info\\":{\\"province\\":\\"hubei\\",\\"geo\\":{\\"long\\":\\"333\\",\\"lati\\":\\"222\\"}}}","time":"1650440364"}

示例3:删除节点

原始日志:
{"content":"{\\"p9\\":[\\"0.0\\",\\"0.0\\"],\\"p18\\":\\"CN\\",\\"info\\":{\\"province\\":\\"hubei\\",\\"geo\\":{\\"long\\":\\"111\\",\\"lati\\":\\"222\\"}}}","time":"1650440364"}
加工规则:
json_edit("content", path="", key="p18", mode="move")
加工结果:
{"content":"{\\"p9\\":[\\"0.0\\",\\"0.0\\"],\\"info\\":{\\"province\\":\\"hubei\\",\\"geo\\":{\\"long\\":\\"111\\",\\"lati\\":\\"222\\"}}}","time":"1650440364"}

示例4:删除节点(数组元素)

原始日志:
{"content":"{\\"p9\\":[\\"0.0\\",\\"0.0\\"],\\"p18\\":\\"CN\\",\\"info\\":{\\"province\\":[\\"hello\\",\\"world\\"],\\"geo\\":{\\"long\\":[\\"1.0\\",\\"2.0\\"],\\"lati\\":\\"222\\"}}}","time":"1650440364"}
加工规则:
json_edit("content", path="info.province", index=1, mode="move")
加工结果:
{"content":"{\\"p9\\":[\\"0.0\\",\\"0.0\\"],\\"p18\\":\\"CN\\",\\"info\\":{\\"province\\":[\\"world\\"],\\"geo\\":{\\"long\\":[\\"1.0\\",\\"2.0\\"],\\"lati\\":\\"222\\"}}}","time":"1650440364"}

json_select 函数

函数定义

通过 JMES表达式,提取 JSON 字段值,并返回 JMES 提取的节点值(String)。

语法描述

json_select(data, jmes="")

参数说明

参数名称
参数描述
参数类型
是否必须
参数默认值
参数取值范围
data
字段值,可以通过其他函数提取字段值
string
-
-
jmes
string
-
-

示例

原始日志:
{"field": "{\\"a\\":{\\"b\\":{\\"c\\":{\\"d\\":\\"success\\"}}}}", "status": "500"}
加工规则:
fields_set("message", json_select(v("field"), jmes="a.b.c.d"))
加工结果:
{"field":"{\\"a\\":{\\"b\\":{\\"c\\":{\\"d\\":\\"success\\"}}}}","message":"success","status":"500"}

json_update 函数

函数定义

在 json 中新增 KV 对,将用户传入的 String 一对一对的去添加,不成对的单个 String 会被丢弃(见示例2)。

语法描述

json_update(json值, key1, value1,key2, value2)

参数说明

参数名称
参数描述
参数类型
是否必须
参数默认值
参数取值范围
field
json 对应的 key
string
-
-
可变参
添加进 json 的 key value 对
string
-
-

示例1:在 json 中新增 KV 对

原始日志:
{"data": "{\\"c\\":\\"d\\"}"}
加工规则:
json_update("data", "11", "22")
加工结果:
{"data":"{\\"11\\":\\"22\\",\\"c\\":\\"d\\"}"}

示例2:在 json 中新增 KV 对,不成对的(例子中的33)会被丢弃

原始日志:
{
"data": "{\\"c\\":\\"d\\"}",
"name": "测试",
"timestamp": 1734567890,
"status": true
}
加工规则:
json_update("data", "11", "11", "22", "22", "33")
加工结果:
{
"data":"{"11":"11","22":"22","c":"d"}",
"name":"测试",
"status":"true",
"timestamp":"1734567890"
}

xml_to_json 函数

函数定义

解析 XML 值并转换为 JSON 字符串,输入值必须为 XML 字符串结构,否则会导致转换异常,返回 dict。

语法描述

xml_to_json(data)

参数说明

参数名称
参数描述
参数类型
是否必须
参数默认值
参数取值范围
data
字段值
string
-
-

示例

原始日志:
{"xml_field": "<note><to>B</to><from>A</from><heading>Reminder</heading><body>Don't forget me this weekend!</body></note>", "status": "500"}
加工规则:
fields_set("json_field", xml_to_json(v("xml_field")))
加工结果:
{"xml_field":"<note><to>B</to><from>A</from><heading>Reminder</heading><body>Don't forget me this weekend!</body></note>","json_field":"{\\"to\\":\\"B\\",\\"from\\":\\"A\\",\\"heading\\":\\"Reminder\\",\\"body\\":\\"Don't forget me this weekend!\\"}","status":"500"}

json_to_xml 函数

函数定义

解析 JSON 字符串值并转换为 XML 字符串,返回 String。

语法描述

json_to_xml(data)

参数说明

参数名称
参数描述
参数类型
是否必须
参数默认值
参数取值范围
data
字段值
string
-
-

示例

原始日志:
{"json_field":"{\\"to\\":\\"B\\",\\"from\\":\\"A\\",\\"heading\\":\\"Reminder\\",\\"body\\":\\"Don't forget me this weekend!\\"}", "status": "200"}
加工规则:
fields_set("xml_field", json_to_xml(v("json_field")))
加工结果:
{"json_field":"{\\"to\\":\\"B\\",\\"from\\":\\"A\\",\\"heading\\":\\"Reminder\\",\\"body\\":\\"Don't forget me this weekend!\\"}","xml_field":"<ObjectNode><to>B</to><from>A</from><heading>Reminder</heading><body>Don't forget me this weekend!</body></ObjectNode>","status":"200"}

if_json 函数

函数定义

判断是否为 JSON 字符串,返回 TRUE/FALSE。

语法描述

if_json(data)

参数说明

参数名称
参数描述
参数类型
是否必须
参数默认值
参数取值范围
data
字段值
string
-
-

示例

示例1
原始日志:
{"condition":"{\\"a\\":\\"b\\"}","status":"500"}
加工语句:
t_if(if_json(v("condition")), fields_set("new", 1))
加工结果:
{"new":"1","condition":"{\\"a\\":\\"b\\"}","status":"500"}
示例2
原始日志:
{"condition":"haha","status":"500"}
加工语句:
t_if(if_json(v("condition")), fields_set("new", 1))
加工结果:
{"condition":"haha","status":"500"}

列表函数

array_get 函数

函数定义

获取数组的值,返回 String。

语法描述

array_get(数组,下标位置)

参数说明

参数名称
参数描述
参数类型
是否必须
参数默认值
参数取值范围
数组
数组
string
-
-
下标位置
取数组第几个值
int
-
-

示例1

原始日志:
{
"field1": "[1,2,3]"
}
加工规则:
fields_set("field2", array_get(v("field1"), 0))
加工结果:
{"field1":"[1,2,3]","field2":"1"}

示例2

原始日志:
{
"field1": "['tom','jerry','bobo']"
}
加工规则:
fields_set("field2", array_get(v("field1"), 0))
加工结果:
{"field1":"['tom','jerry','bobo']","field2":"tom"}



帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈