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

Azure Data Factory JSON输出格式问题求助:数组元素为字符串而非对象

在Azure Data Factory中生成包含对象数组的JSON输出解决方案

以下是完全在ADF Pipeline内解决JSON数组元素为字符串问题的步骤:

前提说明

假设你的CSV源数据结构如下(每行对应一个test对象的属性):

AccessionNum,orderunit,Testname
12345,JMJ,TVK
12345,PJ,CVK

步骤1:正确解析CSV源字段

在Data Flow的源转换中,确认AccessionNum、orderunit、Testname字段被正确识别为字符串类型,避免字段被自动解析为带转义引号的字符串。

步骤2:通过Aggregate转换生成对象数组

添加Aggregate转换,配置如下:

  • 分组依据:选择AccessionNum,确保同一编号的记录被归为一组
  • 聚合列配置:创建名为test的新列,使用表达式:
    collect(struct(orderunit, Testname))
    
    • struct()函数会将orderunit和Testname包装为单个JSON对象
    • collect()函数会将分组内的所有对象收集为一个数组

步骤3:配置JSON Sink输出

在Sink转换中选择JSON格式,设置关键参数:

  • 文件模式:选择Single file(若需按AccessionNum拆分文件,可选择Partitioned by并指定该字段)
  • 格式设置:数组根节点留空(或按需设置),确保输出结构符合预期

验证输出结果

完成以上配置后,输出的JSON结构将符合预期:

{"AccessionNum": "12345","test": [{"orderunit": "JMJ","Testname": "TVK"},{"orderunit": "PJ","Testname": "CVK"}]}

特殊场景处理

如果CSV中的orderunit和Testname已经是带转义引号的字符串(例如值为"{\"orderunit\":\"JMJ\",\"Testname\":\"TVK\"}"),需先添加Parse转换:

  • 选择目标字符串列,设置解析类型为JSON,将字符串解析为结构体对象后,再执行上述Aggregate步骤。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 08:13:15