首页 > 解决方案 > 在 KQL 中解析 Json 数组

问题描述

Json 文本未正确解析 KQL。我也尝试过使用 parse_json ,但这也不起作用。我确实确认扩展 AllProperties 保存了正确的数据。

DeviceInfo
| where RegistryDeviceTag == "Standard"
| extend AllProperties = todynamic(LoggedOnUsers)
| project DeviceName, Users = AllProperties["Username"]

输出为我提供了正确的设备名称,但未在用户名字段中提供任何数据。

标签: azureazure-devopsazure-functionskqlkusto-explorer

解决方案


(基于您在评论中提供的示例输入)

如果“LoggedOnUsers”数组只包含一个条目,您可以这样做:

print input = '[{"UserName":"TheUserName","DomainName":"TheDomainName","Sid":"TheSID#"}]'
| project UserName = parse_json(input)[0].UserName

否则,您可以使用mv-expandor mv-apply

print input = '[{"UserName":"TheUserName","DomainName":"TheDomainName","Sid":"TheSID#"}]'
| project parse_json(input)
| mv-apply input on (
    project UserName = input.UserName
)

推荐阅读