咨询:ADF复制作业为何输出无效JSON?
ADF复制作业输出JSON格式异常修复
问题说明
用ADF搭了个简单的复制作业,Sink端选的JSON数据集,但输出的JSON不符合规范,具体问题如下:
- 整个输出没被数组
[]包裹 - 每个JSON对象之间只有换行,没加逗号分隔
Login字段的邮箱值没套双引号
当前错误输出示例:
{"DepartmentUserMemberships":"","DepartmentSecretaryMemberships":"","Login":te@te.te,"lastname":"aggfd","firstname":"dfgdsfg","Initials":"dsfgsdfg"} {"DepartmentUserMemberships":"","DepartmentSecretaryMemberships":"","Login":te@te.te,"lastname":"adfgadfg","firstname":"adfgafdg","Initials":"sfussing"}
预期的有效格式:
[{"DepartmentUserMemberships":"","DepartmentSecretaryMemberships":"","Login":"te@te.te","lastname":"aggfd","firstname":"dfgdsfg","Initials":"dsfgsdfg"},{"DepartmentUserMemberships":"","DepartmentSecretaryMemberships":"","Login":"te@te.te","lastname":"adfgadfg","firstname":"adfgafdg","Initials":"sfussing"}]
修复步骤
1. 解决数组包裹与对象间逗号问题
直接进入Sink端的JSON数据集配置,找到格式设置:
- 勾选
Array of objects选项,勾选后输出会自动用[]包裹所有对象,同时自动在对象之间添加逗号分隔,无需额外处理换行逻辑。
2. 解决Login字段值无引号问题
这个问题是因为数据源中Login字段被识别为非字符串类型(比如被识别为Email类型),导致输出时未添加引号。处理方式:
- 回到复制作业的映射页面,检查
Login字段的映射类型,将目标字段的类型手动修改为String。 - 修改完成后重新运行作业,邮箱值就会被双引号正常包裹。
内容的提问来源于stack exchange,提问作者Chicago1988
相关产品推荐
相关产品推荐

