在 KQL 中解析 Json 数组

Parse Json Array in KQL

Json 文本未在 KQL 中正确解析。我也尝试使用 parse_json 但这也不起作用。我确实确认扩展 AllProperties 持有正确的数据。

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

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

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

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

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

否则,您可以使用 mv-expandmv-apply:

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