You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Data Explorer多行JSON内容合并为可解析的JSON变量?

解决Kusto中多行拆分JSON的合并与解析问题

核心步骤:合并行→清理格式(按需)→解析JSON→提取属性

假设你的表名为SplitJsonTable,包含FileLineContent(拆分的JSON行)和LineNumber(行号)列,按以下步骤处理:

  1. 按行号顺序合并所有JSON行
    这一步是关键,必须保证行的顺序和原始JSON一致,用make_list配合sort_by指定行号排序,再用strcat_array拼接成完整字符串:

    SplitJsonTable
    // 如果有多文件,先按文件名分组:| partition by FileName (
        summarize full_json = strcat_array(make_list(FileLineContent, sort_by=LineNumber), "")
    // )
    
  2. 清理JSON格式(按需)
    多数情况下,拼接后的字符串已经是有效的JSON(parse_json支持带换行、空格的易读格式),但如果遇到数组末尾多余逗号这类格式问题,用replace_string修正:

    | extend cleaned_json = replace_string(full_json, ",\n]", "]") // 移除数组最后一个元素后的多余逗号
    | extend cleaned_json = replace_string(cleaned_json, "\r\n", "") // 可选:移除所有换行,不影响解析但精简字符串
    
  3. 解析JSON并展开多层级数组
    用parse_json将字符串转为动态类型,再通过mv-expand逐层展开数组,直到能提取目标属性:

    | extend json_dynamic = parse_json(cleaned_json)
    | mv-expand json_dynamic // 展开顶层数组
    | mv-expand json_dynamic.level2_array // 展开第二层数组,按需重复此步骤到第5层
    | project target_value = json_dynamic.level2_array.target_property // 提取目标属性
    

常见问题说明

  • 若之前聚合函数无效,大概率是没指定sort_by=LineNumber,导致行顺序混乱拼接出无效JSON;
  • 无需手动转义引号,只要原始JSON行是合法的,拼接后parse_json会自动处理;
  • 如果表中包含多个文件的拆分内容,一定要用partition by FileName(或其他文件标识列)分组,避免不同文件的行混拼。

内容的提问来源于stack exchange,提问作者ra256

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 23:10:57