ADF复制任务:JSON转分隔文本布尔值需小写的问题排查
解决ADF复制任务中布尔值大小写异常的问题
嘿,我来帮你搞定这个问题!你遇到的是ADF默认序列化行为导致的——它会把JSON里的布尔相关值转成.NET风格的首字母大写格式(比如False),但你需要保留原生的小写false。下面是具体的修复配置步骤:
方案一:直接修改复制活动的字段映射类型
这是最快捷的方法,适配你的场景(源JSON里的"B":"false"其实是字符串格式的布尔值):
- 打开你的复制任务,切换到映射标签页
- 找到
B字段,点击它的数据类型下拉框 - 把目标端的数据类型从默认的
Boolean改成String这样ADF就不会对这个字段做类型转换,会直接保留源数据里的小写
"false"字符串
方案二:用数据流实现精准控制(如果需要保留布尔类型逻辑)
要是你希望目标端仍保留布尔类型语义,但输出小写文本,就用数据流来处理:
- 创建一个新的数据流,添加JSON源和分隔符文本接收器
- 在中间加一个派生列转换
- 对
B字段写表达式:toLowerCase(toString(B))这个表达式先把布尔值转成字符串,再统一转成小写,完美适配你的需求
- 最后在接收器里把
B字段的类型设为String,输出的文本就是小写false了
额外检查点:接收器格式设置
别忘了去复制活动的接收器标签页,看看格式设置里有没有勾选会影响布尔值格式的选项,有些默认配置可能会悄悄改变输出样式。
另外要提一句:你的源JSON里"B":"false"是带引号的字符串,不是原生布尔值(原生布尔值是不带引号的false),ADF自动映射时可能把它识别成布尔类型才转了大小写,改成字符串类型就彻底解决这个问题啦。
内容的提问来源于stack exchange,提问作者prvn
相关产品推荐
相关产品推荐

