如何用ADF的TabularTranslator正确映射数组避免被转义为字符串?
Azure Data Factory TabularTranslator JSON格式问题解决方案
方案1:调整源SQL查询,输出结构化JSON而非字符串
ADF的TabularTranslator会把SQL返回的字符串类型直接转义后写入JSON,所以需要让SQL返回可被ADF识别的结构化JSON结构,而非字符串形式的JSON。修改查询为:
SELECT 'Test' AS category FOR JSON PATH, WITHOUT_ARRAY_WRAPPER
SQL会直接输出{"category": ["Test"]},之后在ADF中设置源为JSON格式(而非表格式),接收器直接接收该结构化内容,即可得到正确的数组格式。
方案2:在TabularTranslator中使用自定义列转换
如果必须保留表格式源,可在ADF复制活动的TabularTranslator配置里,对category列用表达式转换将字符串解析为JSON数组:
- 打开复制活动的映射设置,进入TabularTranslator配置界面
- 对
category列设置输出表达式:
该表达式会将字符串形式的JSON解析为原生JSON数组,写入接收器时不会被额外包裹引号。@json(item().category)
方案3:检查接收器的JSON格式设置
确认JSON接收器的格式设置中,选择数组格式或每行一个对象;同时检查是否开启了「转义特殊字符」选项,若开启则关闭(默认配置通常无需调整,此步骤为辅助验证)。
内容的提问来源于stack exchange,提问作者K N
相关产品推荐
相关产品推荐

