You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在KQL动态数组中查找满足条件的元素属性值?

KQL查询满足特定条件的JSON数组元素

针对你遇到的问题,这里提供几种实用的解决方法:

方法1:mv-expand配合过滤(最常用)

先将JSON字符串解析为动态数组,通过mv-expand展开数组中的每个对象,再过滤出key为"a"的元素,即可获取对应的val值,完全不会拆分key与val的关联:

datatable(json_str:string)
[
    '[{"key": "foo", "val": "bar"}, {"key": "a", "val": "b"}]'
]
| parse json_str as arr:dynamic
| mv-expand arr
| where arr.key == "a"
| project target_val = arr.val

方法2:array_filter函数(无需展开行)

利用array_filter可以直接通过谓词条件过滤数组元素,返回符合条件的元素数组,再提取对应值:

datatable(json_str:string)
[
    '[{"key": "foo", "val": "bar"}, {"key": "a", "val": "b"}]'
]
| parse json_str as arr:dynamic
| project filtered_elements = array_filter(arr, x => x.key == "a")
// 如果确定只有一个匹配项,直接取索引0的val;多个匹配可再用mv-expand展开filtered_elements
| project target_val = filtered_elements[0].val

方法3:parse运算符(适合结构固定场景)

如果目标对象的JSON格式完全固定,也可以直接用parse运算符匹配提取,不过这种方法通用性较差:

datatable(json_str:string)
[
    '[{"key": "foo", "val": "bar"}, {"key": "a", "val": "b"}]'
]
| parse json_str with * '{"key": "a", "val": "' target_val '"}' *
| project target_val

内容的提问来源于stack exchange,提问作者manymanymore

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 10:32:41