如何使用“复制数据”活动或任何其他选项将“设置变量”活动输出传输到 Json 文件中?

问题描述 投票:0回答:1

我尝试过“复制数据”活动将数据从设置变量输出复制到 JSON 文件中,但它不起作用。请检查以下我尝试过的步骤:

设置变量活动:这里变量类型是Array,其中包含以下数据:

{
    "name": "OrderList",
    "value": [
        {
            "id": 3,
            "portfolioId": 92,
            "createDate": "2023-10-17T14:17:35.45Z",
            "externalId": null,
            "quantity": 10,
            "type": {
                "name": "Buy"
            }
        },
        {
            "id": 4,
            "portfolioId": 120,
            "createDate": "2024-08-27T05:32:50.546Z",
            "externalId": null,
            "type": {
                "name": "Buy"
            }
        }
    ]
}

Set Variable

复制数据活动 - 来源:我已经获取了一个空的 JSON 数据集并添加了附加列

Source

Sink:我已经采取了一个虚拟的JSON来接收它,其中包含空的“OrderList”

Sink

映射:导入模式无法自动映射,这就是我手动添加附加列的原因

Mapping

完成所有这些操作后,我收到以下错误:

无法将“value”属性中的值转换为“System.String”类型

任何人都可以建议我错过了什么。预先感谢。

azure azure-data-factory etl azure-data-lake
1个回答
0
投票

无法将“value”属性中的值转换为“System.String”类型

错误原因是附加列值应该是字符串格式,以便将其存储在 Json 文件中,当您将其以字符串格式存储在 Json 文件中时,它会添加反斜杠作为转义字符。要解决此问题并在 Json 文件中添加数组值,您需要执行以下步骤:

  • 在源中添加附加列值,如下所示
@concat('{"OrderList" : ',string(variables('OrderList')),'}')

enter image description here

  • 对于接收器,使用以下设置创建 CSV 格式的数据集:

enter image description here

  • 将其添加到您的接收器中,并在映射中删除所有不需要的列,仅保留附加列。

输出:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.