Azure Synapse Analytics处理Blob JSON时如何保留\n为字符串不解析为换行
可以在Azure Synapse侧实现该需求,无需修改源端数据,可选择以下两种方案操作:
方案1:映射数据流(推荐,适配复杂转换场景)
- 源配置:源端选择JSON格式数据集,转义字符设置为
\,引号字符保持默认双引号,不要提前设置为无引号避免解析异常。 - 添加派生列转换:针对存储目标内容的
Value字段,使用如下表达式完成替换:
该操作会把已经被解析为换行符的内容,替换回字符串形式的replace(Value, toString('\n'), '\\n')\n。 - 接收器配置:输出为分隔文本格式时,引号字符选择
无引号字符,转义字符设置为\,即可保证\n以字符串形式输出,不会被转义为换行。
方案2:复制活动(轻量场景适配)
- 源配置:源端选择二进制格式读取JSON文件,跳过默认的JSON自动解析流程,避免
\n被提前转义为换行符。 - 字符串替换处理:在复制活动的列映射中,添加自定义表达式将读取到的文本内容中的
\n替换为\\n。 - 接收器配置:按照你的需求设置分隔文本的引号字符为无引号即可。
两种方案均不需要调整源侧数据,可兼容你要求的无引号输出配置。
内容的提问来源于stack exchange,提问作者Keshav Prasad
相关产品推荐
相关产品推荐

