Application Insights:多层JSON解析如何简化操作?
简化KQL中多层JSON字段访问的方法
你完全不需要那种复杂的嵌套写法,KQL里parse_json()返回的是dynamic类型,本身就支持直接链式访问嵌套字段,以下是两种简化写法:
点符号访问(适用于字段名不含特殊字符的情况):
toint(parse_json(myJson).SubFieldA.SubSubFieldB.SubSubSubFieldC)方括号访问(适用于字段名包含空格、特殊字符的情况):
toint(parse_json(myJson)["SubFieldA"]["SubSubFieldB"]["SubSubSubFieldC"])
额外优化技巧
如果需要多次访问这个JSON的多个字段,可以提前将JSON解析为动态列,后续直接调用:
YourTableName | extend parsed_json = parse_json(myJson) | extend target_int_value = toint(parsed_json.SubFieldA.SubSubFieldB.SubSubSubFieldC) | extend another_value = parsed_json.OtherField
注意事项
如果嵌套路径中某个字段可能不存在,建议用coalesce处理空值,避免查询报错:
toint(coalesce(parse_json(myJson).SubFieldA.SubSubFieldB.SubSubSubFieldC, 0))
内容的提问来源于stack exchange,提问作者Leonardo
相关产品推荐
相关产品推荐

