我希望能够分析存储在自定义遥测事件的自定义维度中的结构化数据,这些事件发布到应用程序洞察,并获得一些奇怪的行为。似乎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}
有一个描述属性包的JSON字符串有点常见,其中一个“槽”是另一个JSON字符串。 [...]在这种情况下,不仅需要两次调用
parse_json
,而且还要确保在第二次调用中使用tostring
。否则,对parse_json
的第二次调用将简单地将输入传递给输出,因为它的声明类型是dynamic
。