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

使用Synapse Pipeline复制活动读取XML响应的REST API失败求助

问题描述

尝试通过Synapse Pipeline读取REST API端点并将数据以JSON格式落地,但API返回XML格式响应,运行时触发报错:

{"errorCode":"2200","message":"Failure happened on 'Source' side. ErrorCode=JsonInvalidDataFormat,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Error occurred when deserializing source JSON file ''. Check if the data is in valid JSON object format.,Source=Microsoft.DataTransfer.ClientLibrary,''Type=Newtonsoft.Json.JsonReaderException,Message=Unexpected character encountered while parsing value: <. Path '', line 0, position 0.,Source=Newtonsoft.Json,'","failureType":"UserError","target":"Copy REST API Data","details":[]}

不想使用现有SSIS包中的C#脚本,寻求替代解决方案。

解决方案(无需SSIS/C#脚本)

方法1:调整Copy Activity的源格式配置

直接在Copy Activity中适配XML源并输出JSON:

  • 打开Copy Activity的源配置,在「格式」选项卡中选择XML(默认是JSON,这是报错的核心原因)
  • 若XML有嵌套结构,可在「XML设置」中指定根节点(比如/root/items),确保Synapse能正确识别数据结构
  • 切换到目标配置,选择目标存储(如ADLS Gen2、Blob Storage),格式设置为JSON,按需选择「单行」或「多行」模式

方法2:用Data Flow完成XML到JSON的转换

适合需要对数据做清洗/转换的场景:

  • 创建新的Data Flow,添加XML源:选择REST数据集,配置API端点和认证信息,指定XML根节点
  • 可选添加「Select」「Filter」等转换活动,调整字段或过滤数据
  • 添加JSON接收器:配置目标存储路径,设置JSON格式参数(如编码、是否包含列名)
  • 在Synapse Pipeline中添加「Execute Data Flow」活动,调用上述Data Flow

方法3:通过请求头强制API返回JSON

如果API支持格式协商,直接让API返回JSON避免转换:

  • 在REST数据集的「请求头」中添加键值对:Accept: application/json
  • 保存配置后重新运行Pipeline,若API识别该请求头,会直接返回JSON格式数据,无需处理XML转换

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 22:35:27