我的appInsights遥测中有一个自定义属性,它是键/值对的json数组。我想做的是转换出该键/值对,看来一起使用parsejson和mvexpand就是实现这一目标的方法。但是,我似乎缺少了一些东西。我表达式的最终结果是一个名为type的列,它是原始的json。尝试将任何属性添加到表达式将导致一个空列。
Json编码的属性
[{"type":"text/xml","count":1}]
AIQL
requests
| project customDimensions
| extend type=parsejson(customDimensions.['Media Types'])
| mvexpand bagexpansion=array type
更新17年6月30日
如下图所示,要回答EranG的问题,请在将属性投影为列时输出我的请求。
最佳答案
我最近有同样的问题。您的属性可能已经是dynamic
类型,但其动态String
不是数组。 parsejson
不起作用,因为它将String
转换为dynamic
,而不是动态地转换为另一个动态。要解决此问题,建议您首先尝试将属性转换为String
,然后再次对其进行解析。
请尝试以下示例。它可能对您有所帮助,因为它对我有帮助:
requests
| project customDimensions
| extend type=parsejson(tostring(customDimensions.['Media Types']))
| mvexpand type
| project type.type, type.['count']
关于azure-application-insights - 如何在键/值对的json数组上使用mvexpand,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44663614/