如何在键/值对的json数组上使用mvexpand

Ted*_*ord 4 azure-application-insights ms-app-analytics

我的appInsights遥测中有一个自定义属性,它是键/值对的json数组。我想做的是投射出那个键/值对,看来一起使用parsejson和mvexpand就是实现这一点的方法。但是,我似乎缺少了一些东西。我表达式的最终结果是一个名为type的列,它是原始的json。尝试将任何属性添加到表达式将导致一个空列。

Json编码的属性

[{"type":"text/xml","count":1}]
Run Code Online (Sandbox Code Playgroud)

空气质量指数

requests 
 | project customDimensions 
 | extend type=parsejson(customDimensions.['Media Types'])
 | mvexpand bagexpansion=array type 
Run Code Online (Sandbox Code Playgroud)

更新6/30/17

如下图所示,要回答EranG的问题,请在将属性投影为列时输出我的请求。

在此处输入图片说明

Max*_*sov 6

我最近有同样的问题。可能您的属性已经是type dynamic,但是它的动态String不是数组。parsejson不起作用,因为它会转换String为dynamic,而不是动态转换为另一个动态。要变通解决此问题,建议您首先尝试将属性转换为String,然后再次解析。

请尝试以下示例。它可能对您有所帮助,因为它对我有帮助:

requests 
| project customDimensions 
| extend type=parsejson(tostring(customDimensions.['Media Types']))
| mvexpand type
| project type.type, type.['count']
Run Code Online (Sandbox Code Playgroud)

  • 谢谢, tostring() 是我所缺少的 (2认同)