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

如何使用Azure Data Factory将任意CSV转换为指定嵌套JSON数组?

Azure Data Factory 实现任意列CSV转指定JSON结构

需求说明

输入为任意列数的CSV文件,需转换为以下固定Schema的JSON:

{
    "Data": [
        ["value_1", "value_2"],
        ["value_3", "value_4"]
    ]
}

限制:仅使用Azure Data Factory原生组件,禁止依赖Azure Functions等外部服务,排除Copy Data活动(仅支持固定列)和Data Flow(配置复杂、启动耗时)。

实现方案:Lookup + 变量 + ForEach 组合

1. 配置CSV数据集

  • 创建CSV类型数据集,取消勾选"第一行作为标题",设置对应CSV的分隔符(默认逗号)。

2. Lookup活动读取CSV内容

  • 添加Lookup活动,数据源选择上述CSV数据集,活动输出会将CSV所有行以对象数组形式返回,示例输出:
{
    "value": [
        {"Column_0": "value_1", "Column_1": "value_2"},
        {"Column_0": "value_3", "Column_1": "value_4"}
    ]
}

3. 初始化数组变量

  • 在Pipeline中创建数组类型变量dataArray,初始值设为[],用于存储转换后的二维数组。

4. ForEach活动遍历并转换每行

  • 添加ForEach活动,迭代项设置为@activity('LookupCSV').output.value(替换为你的Lookup活动名称)。
  • 在ForEach内部添加Append Variable活动,将当前行的所有值提取为数组并追加到dataArray,表达式为:
@values(item())

values()函数会自动提取对象的所有值并转为数组,适配任意列数场景。

5. 生成最终JSON结构

  • 添加Set Variable活动,创建字符串类型变量finalJson,赋值表达式:
@concat('{"Data": ', string(variables('dataArray')), '}')

该表达式会将dataArray转为JSON字符串并包裹到指定结构中。

6. 输出到存储(可选)

  • 若需写入JSON文件,使用Copy Data活动:
    • 源选择"Inline"数据集,内容设为@variables('finalJson');
    • 目标选择JSON数据集,设置为"Single file"模式,即可生成符合要求的JSON文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 16:01:14