如何在KQL中解析指定JSON格式的固件信息?
KQL解析嵌套JSON固件信息方案
待解析的JSON数据
{"firmware_manufacturer":"Cisco","firmware_device_type":["Switch"],"firmware_model":"WS-C2960CX-8PC-L","firmware_original_versions":[{"hardware_version":null,"software_version":"15.2(7)E"}]}
期望输出表格
| 字段名称 | 值 |
|---|---|
| firmware_manufacturer | Cisco |
| firmware_device_type | Switch |
| firmware_model | WS-C2960CX-8PC-L |
| Software_version | 15.2(7)E |
可行的KQL解析方案
extract函数更适合简单字符串匹配,针对包含数组、嵌套对象的JSON,用parse_json将字符串转为动态对象再提取字段更可靠。以下是完整查询语句:
// 模拟数据源,实际使用时替换为你的表和字段 datatable(firmware_json:string) [ '{"firmware_manufacturer":"Cisco","firmware_device_type":["Switch"],"firmware_model":"WS-C2960CX-8PC-L","firmware_original_versions":[{"hardware_version":null,"software_version":"15.2(7)E"}]}' ] | extend firmware_obj = parse_json(firmware_json) | project firmware_manufacturer = firmware_obj.firmware_manufacturer, firmware_device_type = firmware_obj.firmware_device_type[0], // 取数组第一个元素 firmware_model = firmware_obj.firmware_model, Software_version = firmware_obj.firmware_original_versions[0].software_version // 提取嵌套对象字段 | evaluate bag_unpack() // 转为键值对行结构,匹配期望表格形式
语句说明
datatable:模拟存储JSON字符串的数据源,实际场景替换为业务表和对应字段名。parse_json:将JSON字符串转换为Kusto动态对象,支持嵌套结构的链式访问。project:按需提取字段,数组类型字段用[索引]取值,嵌套对象用.链式访问子字段。evaluate bag_unpack():将提取的列转换为键值对行结构,和期望的表格格式完全匹配。
查询结果示例
| Key | Value |
|---|---|
| firmware_manufacturer | Cisco |
| firmware_device_type | Switch |
| firmware_model | WS-C2960CX-8PC-L |
| Software_version | 15.2(7)E |
内容的提问来源于stack exchange,提问作者Pradeep Sahoo
相关产品推荐
相关产品推荐

