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

在Kusto中合并两个dynamic列并保留JSON数据结构的方法

Kusto两列Dynamic JSON合并解决方案

要将表中两个dynamic类型的JSON列合并为一列(输出为逗号分隔的JSON对象形式),可以通过以下方式实现:

基础实现(直接拼接字符串)

let OriginalTable = datatable(data1:dynamic, data2:dynamic)
[
    dynamic({"name":"Name_1","data":[5,6,7,8]}), dynamic({"extra":"info1"}),
    dynamic({"name":"Name_2","data":[9,10,11,12]}), dynamic({"extra":"info2"})
];
OriginalTable
// 将两个dynamic列转为字符串,用逗号加换行拼接
| project combined_json = strcat(tostring(data1), ",\n", tostring(data2))

格式化输出(带缩进换行)

如果需要输出格式化后的美观JSON格式,可使用format_dynamic函数处理:

let OriginalTable = datatable(data1:dynamic, data2:dynamic)
[
    dynamic({"name":"Name_1","data":[5,6,7,8]}), dynamic({"extra":"info1"}),
    dynamic({"name":"Name_2","data":[9,10,11,12]}), dynamic({"extra":"info2"})
];
OriginalTable
// 先打包为数组再格式化,最后移除数组方括号
| extend combined_obj = pack_array(data1, data2)
| project combined_json = replace_string(replace_string(format_dynamic(combined_obj), "[", ""), "]", "")

说明

  • tostring():将dynamic类型的JSON对象转换为字符串,避免直接拼接导致的结构混乱;
  • pack_array():将两个JSON对象打包为数组,方便后续统一格式化;
  • format_dynamic():生成带缩进、换行的可读JSON格式,再通过replace_string()去掉数组的方括号,得到预期的逗号分隔形式。

如果需求是将表中所有行的JSON对象合并为一个逗号分隔列表(而非每行两列合并),可使用以下代码:

let OriginalTable = datatable(data:dynamic)
[
    dynamic({"name":"Name_1","data":[5,6,7,8]}),
    dynamic({"name":"Name_2","data":[9,10,11,12]})
];
OriginalTable
| summarize all_objs = make_list(data)
| project combined_json = strcat_array(all_objs, ",\n")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 10:33:35