2017-06-20 60 views
2

我在我的appInsights遙測中有一個定製屬性,它是一個鍵/值對的json數組。我想要做的是推出這個鍵/值對,並且似乎一起使用parsejsonmvexpand是如何實現這一點;然而,我似乎錯過了一些東西。我的表達式的最終結果是一個名爲type的列,它是原始的json。嘗試將表達式結果中的任何屬性添加到空列中。如何在鍵/值對的json數組上使用mvexpand

JSON編碼性能

[{"type":"text/xml","count":1}] 

AIQL

requests 
| project customDimensions 
| extend type=parsejson(customDimensions.['Media Types']) 
| mvexpand bagexpansion=array type 

更新17年6月30日

要伸出時回答EranG的問題,我的要求的輸出作爲列的屬性如圖所示b elow。

enter image description here

回答

1

最近我有同樣的問題。可能您的財產已經是dynamic類型,但其動態String不是陣列。 parsejson不起作用,因爲它將String轉換爲dynamic,而不是動態的到另一個動態。要解決此問題,我建議您先嚐試將您的資產轉換爲String,然後再解析它。

請嘗試下面的例子。它可以幫助你,因爲它幫助我:

requests 
| project customDimensions 
| extend type=parsejson(tostring(customDimensions.['Media Types'])) 
| mvexpand type 
| project type.type, type.['count'] 
1

mvexpand做什麼把你的陣列,並打破它的線條,讓每一行都會有從陣列中的單個項目。 如果你想每個項目打破列,你需要嘗試類似:

requests 
| project customDimensions 
| extend type=parsejson(customDimensions.['Media Types']) 
| mvexpand bagexpansion=array type 
| project type = type.type, count_ = type["count"] 
+0

不幸的是,當我運行該查詢,我結束了相同數量的結果行與指定類型兩個空列和count_ – Tedford

+0

你可以告訴你之後的擴展得到了什麼? – EranG

相關問題