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

如何通过KQL获取嵌套JSON子值?查询返回空值求解

解决KQL访问嵌套JSON子值为空的问题

以下是针对你遇到的问题的排查和解决步骤:

1. 先确认customDimensions.data的类型

Application Insights的customDimensions默认是**动态(dynamic)**类型,但如果data字段是字符串形式的JSON(而非已解析的动态对象),直接访问会失败。可以先执行以下查询确认data的实际内容和类型:

requests
| where customDimensions.source == "xxxx"
| project customDimensions.data, typeof(customDimensions.data)

2. 针对不同类型的修正查询

情况一:customDimensions.data是字符串类型的JSON

需要先将字符串解析为动态对象再访问子值:

requests
| where customDimensions.source == "xxxx"
| extend parsedData = parse_json(tostring(customDimensions.data))
| extend AssignedTo = parsedData.xxx
| project AssignedTo

情况二:customDimensions.data本身是动态对象

直接通过嵌套路径访问即可,无需额外解析:

requests
| where customDimensions.source == "xxxx"
| extend AssignedTo = customDimensions.data.xxx
| project AssignedTo

3. 排查键名问题

KQL对JSON键名大小写敏感,确保你使用的xxx和实际JSON中的键名完全一致(包括大小写、特殊字符)。可以用bag_has_key函数验证键是否存在:

requests
| where customDimensions.source == "xxxx"
| extend hasData = bag_has_key(customDimensions, "data"),
         hasXxx = bag_has_key(customDimensions.data, "xxx")
| project hasData, hasXxx, customDimensions.data

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 05:42:17