JSONPath 表达式
JSONPath 表示法描述 JSON 文档中的一个或多个元素的路径。
JSONPath 表示法用于以下场景:
- 指定引入的数据映射
- 指定外部表的数据映射
- 处理动态对象的Kusto 查询语言 (KQL) 函数,如 bag_remove_keys() 和 extract_json()
支持以下 JSONPath 表示法子集:
路径表达式 | 说明 |
---|---|
$ |
根对象 |
. |
选择父对象中的指定属性。 如果该属性不包含特殊字符,请使用此表示法。 |
['property'] 或 ["property"] |
选择父对象中的指定属性。 确保在属性名称的两侧添加单引号或双引号。 如果属性名称包含特殊字符(例如空格)或以 A..Za..z_ 之外的字符开头,请使用此表示法。 |
[n] |
选择数组中的第 n 个元素。 索引从 0 开始。 |
注意
不支持通配符、递归、并集、切片和当前对象。
示例
给定以下 JSON 文档:
{
"Source": "Server-01",
"Timestamp": "2023-07-25T09:15:32.123Z",
"Log Level": "INFO",
"Message": "Application started successfully.",
"Details": {
"Service": "AuthService",
"Endpoint": "/api/login",
"Response Code": 200,
"Response Time": 54.21,
"User": {
"User ID": "user123",
"Username": "kiana_anderson",
"IP Address": "192.168.1.100"
}
}
}
可以使用 JSONPath 表示法表示每个字段,如下所示:
"$.Source" // Source field
"$.Timestamp" // Timestamp field
"$['Log Level']" // Log Level field
"$.Message" // Message field
"$.Details.Service" // Service field
"$.Details.Endpoint" // Endpoint field
"$.Details['Response Code']" // Response Code field
"$.Details['Response Time']" // Response Time field
"$.Details.User['User ID']" // User ID field
"$.Details.User.Username" // Username field
"$.Details.User['IP Address']" // IP Address field