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

如何在Azure Data Factory中用associate函数保留数据类型创建键值映射?

解决ADF数据流中XML转混合类型JSON的问题

可行方案1:使用对象构造器转换

这是最直观的方式,能精准保留各字段的数据类型:

  • 添加「对象构造器」转换,选择「创建复杂列」,将新列名设为load
  • 在load列下创建子对象cargo
  • 为cargo添加两个字段:
    • netWeightLoad:直接映射到原扁平化列load_cargo_netWeightLoad(自动保留整数类型)
    • unit:直接映射到原扁平化列load_cargo_unit(自动保留字符串类型)
  • 后续输出环节直接使用这个构造好的复杂列即可生成符合要求的JSON结构

可行方案2:派生列中使用JSON字面量语法

跳过associate函数,直接用JSON字面量构造混合类型对象,在派生列的表达式中写入:

{
    "load": {
        "cargo": {
            "netWeightLoad": load_cargo_netWeightLoad,
            "unit": load_cargo_unit
        }
    }
}

将该表达式赋值给新的派生列(比如命名为targetJson),生成的对象会完整保留原字段的整数、字符串类型,不会触发类型不匹配报错。

为什么之前的associate函数会报错

associate函数的设计逻辑要求所有传入的值必须是相同数据类型,因为它是基于同类型键值对集合构建对象。而你的场景中netWeightLoad是整数、unit是字符串,值类型不统一,因此触发报错。上述两种方案都避开了这个限制,支持混合类型的对象构造。

内容的提问来源于stack exchange,提问作者Jose Angel Martinez Soler

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 22:05:05