我的appInsights遥测中有一个自定义属性,它是键/值对的json数组。我想做的是转换出该键/值对,看来一起使用parsejsonmvexpand就是实现这一目标的方法。但是,我似乎缺少了一些东西。我表达式的最终结果是一个名为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的问题,请在将属性投影为列时输出我的请求。

azure-application-insights - 如何在键/值对的json数组上使用mvexpand-LMLPHP

最佳答案

我最近有同样的问题。您的属性可能已经是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/

10-16 23:56