在 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-expand
或 mv-apply
:
print input = '[{"UserName":"TheUserName","DomainName":"TheDomainName","Sid":"TheSID#"}]'
| project parse_json(input)
| mv-apply input on (
project UserName = input.UserName
)
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-expand
或 mv-apply
:
print input = '[{"UserName":"TheUserName","DomainName":"TheDomainName","Sid":"TheSID#"}]'
| project parse_json(input)
| mv-apply input on (
project UserName = input.UserName
)