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

如何在Azure Data Factory中从SOAP响应提取JSON数组

从SOAP响应提取嵌套JSON数组的ADF实现步骤

针对你遇到的问题,可通过ADF Data Flow的一系列操作完成提取,具体步骤如下:

1. 定位目标字段

在Data Flow的源组件后,使用**选择(Select)**组件,保留soap:Envelope.soap:Body.WebServiceXMLResponse.WebServiceXMLResult._value_字段(根据你的JSON结构路径调整,确保能准确获取到嵌套的_value_字符串)。

2. 解码转义引号

添加**派生列(Derived Column)**组件,创建新列decoded_str,使用替换函数处理转义的引号:

replace(_value_, '"', '"')

执行后,decoded_str会得到标准的JSON字符串:

{"messages":[{"Sequence":"11","ScientificName":"Bos Taurus"},{"Sequence":"12","ScientificName":"Accipitridae"},{"Sequence":"13","ScientificName":"Corvus splendens"}]}

3. 解析JSON字符串为对象

继续添加派生列组件,创建parsed_json列,用json()函数将字符串解析为JSON对象:

json(decoded_str)

4. 提取messages数组

再次使用派生列或选择组件,提取parsed_json.messages,得到你需要的数组结构:

parsed_json.messages

5. 输出目标JSON

  • 若要直接输出数组格式的JSON文件:在Sink组件中选择JSON格式,设置文件模式为Array of objects,将提取到的数组字段作为输出列。
  • 若要先扁平化数组为单条记录:添加**扁平化(Flatten)**组件,选择messages数组作为扁平化列,拆分后每条数组元素变为单独行,再输出为JSON(如需合并为数组,可在Sink中设置对应模式)。

额外注意事项

  • 若_value_字符串包含多余空格,可先用trim(_value_)处理后再替换引号,避免JSON解析失败。
  • 确保源组件的路径配置正确,能正常读取到嵌套的_value_字段(可通过数据预览验证)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 06:43:22