1

我希望能够分析存储在自定义遥测事件的自定义维度中的结构化数据,这些数据会发送到应用程序洞察力,并获得一些奇怪的行为。似乎无法正常解析 JSON,但如果我通过它,strcat它能够解析 json 就好了。

customEvents 
| where name == "PbConfigFilterComponentSaved"
| take 1
| project 
    jsonType=gettype(customDimensions.Json), 
    parsedType=gettype(parse_json(customDimensions.Json)), 
    strcatType=gettype(strcat('', customDimensions.Json)),
    strcatParsedType=gettype(parse_json(strcat('', customDimensions.Json)))

结果:

jsonType:         string
parsedType:       string
strcatType:       string
strcatParsedType: dictionary

有没有更好的方法让 parse_json 处理这种值?

更新

如果它以任何方式相关,这里的值是customDimensions.Json

{"filterComponentKey":"CatalystAgeRange","typeKey":"TemporalConstraint","uiConfig":{"name":"Age","displayMode":"Age"},"config":{"dateSelector":"pat.BirthDTS"},"disabledForScenes":false,"disabledForFilters":false}
4

1 回答 1

1
  1. 您能否演示一个未正确解析的示例记录?
  2. 推测(在查看数据之前):您是否验证了此处的最后一段不适用于您的案例?

有一个 JSON 字符串描述一个属性包,其中一个“插槽”是另一个 JSON 字符串,这有点常见。[…] 在这种情况下,不仅需要调用parse_json两次,而且还要确保在第二次调用中,tostring将使用。否则,第二次调用parse_json将简单地将输入按原样传递给输出,因为它声明的类型是dynamic.

于 2019-04-11T03:48:23.987 回答