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

如何将Set Variable活动输出写入JSON文件?遇类型转换错误

问题解决:Copy Data活动无法写入Array变量到JSON文件

错误原因

你遇到的Failed to convert the value in 'value' property to 'System.String' type错误,核心原因是直接将Array类型变量绑定到Copy Data源的额外列时,Copy Data默认会尝试把数组转换为字符串,但变量里的嵌套对象结构无法被直接序列化;再加上空JSON源没有数据行来承载数组展开后的内容,最终触发类型转换失败。

正确操作步骤

1. 替换Copy Data的数据源

放弃空JSON数据集,改用Lookup活动或Script活动生成可被Copy Data处理的行集:

  • Lookup活动方案:
    1. 创建一个返回单一行的数据集(比如仅含1列1行的空CSV,或结构为{"dummy":""}的JSON文件)
    2. 在Lookup活动的附加列中添加列OrderList,值绑定为@variables('OrderList')
    3. 将Copy Data的源设置为该Lookup活动的输出
  • Script活动方案(适用于Azure Data Factory):
    1. 添加Script活动,在脚本中输入@activity('Set Variable').output.value
    2. 该活动会直接将数组拆分为多行数据,Copy Data的源设置为Script活动的输出

2. 调整JSON接收器配置

  • 在JSON数据集的设置中,将文件模式改为Array of objects,确保输出为标准的JSON数组格式
  • 无需预先创建带空OrderList的虚拟文件,Copy Data会自动生成正确结构的JSON文件

3. 修正映射逻辑

如果用Lookup活动方案,需要在Copy Data的源中使用@explode()函数展开数组:

  1. 在Copy Data源的查询框中输入:
@explode(activity('Lookup').output.firstRow.OrderList)
  1. 此时Copy Data会将数组中的每个对象作为单独一行进行映射,直接将字段对应到接收器即可;如果需要输出包含OrderList键的嵌套结构,可以在映射前添加派生列活动,构造{"OrderList": <数组内容>}的结构

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 10:17:22