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

Azure Synapse复制活动中OData API $count反序列化问题

解决使用/$count API时Copy Activity的JSON反序列化错误

问题原因

调用带/$count后缀的API时,返回的响应通常是纯数字值(比如42),而非标准的JSON对象/数组结构。Copy Activity默认会将响应按JSON格式解析,纯数字不符合JSON对象的语法要求,因此触发反序列化错误:

"Error occurred when deserializing source JSON file ''. Check if the data is in valid JSON object format."

解决方案

方案1:用Web Activity替代Copy Activity获取计数

如果只是需要获取计数用于后续验证,无需通过Copy Activity传递数据,直接用Web Activity即可:

  • 配置Web Activity调用目标/$count API,确保请求参数和权限正确。
  • 后续步骤中直接引用Web Activity的输出值,比如用表达式@activity('GetCount').output获取纯数字计数,用于和目标数据的行数做对比验证。

方案2:修改Copy Activity源为文本格式

如果必须用Copy Activity传递计数,需调整源的格式配置:

  • 在Copy Activity的源设置中,将数据集的格式从JSON切换为Text。
  • 这样Copy Activity会将API返回的纯数字当作纯文本读取,不会尝试JSON反序列化。
  • 若后续需要将文本转为数值,可使用表达式@int(activity('CopyCount').output)进行类型转换。

方案3:校验API响应的Content-Type

部分/$count API返回的Content-Type为text/plain而非application/json,需确保Copy Activity的源配置匹配响应类型:

  • 在REST链接服务或源数据集的高级设置中,确认响应格式设置为文本,避免强制按JSON解析。

排查要点

  • 先用Postman/浏览器直接调用/$count API,确认返回的是纯数字,无额外JSON包裹(比如{"count":123}是JSON对象,不会报错,但纯数字会)。
  • 检查Copy Activity的源数据集配置,确保没有误选JSON格式,切换为Text格式即可解决核心问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 05:22:11