在 Azure 数据工厂中使用复制数据活动将 xml 解析为 json 时如何删除转义字符?

Posted

技术标签:

【中文标题】在 Azure 数据工厂中使用复制数据活动将 xml 解析为 json 时如何删除转义字符?【英文标题】:How to remove escaped character when parsing xml to json with copy data activity in Azure Data Factory? 【发布时间】:2022-01-16 14:11:02 【问题描述】:

我有一个 ADF 管道,它通过复制数据活动从 xml 数据集 (ADLS) 导出到 json 数据集 (ADLS)。由于xml结构复杂,需要先将嵌套的xml解析成嵌套的json,然后使用T-SQL将嵌套的json解析成Synapse表。

但是,嵌套的输出在其中包含逗号的节点处具有双反斜杠(看起来像转义字符)。您可以在下面查看 xml 输入和 json 输出的示例:

xml 输入

<Address2>Centro, COLONIA CENTRO DE LA CIUDAD DE</Address2>

json 输出

"Address2":"Centro\\, COLONIA CENTRO DE LA CIUDAD DE"

如何使用 Azure 数据工厂中的复制数据活动删除输出 json 中的双反斜杠?

【问题讨论】:

你解决了吗? 感谢@KarthikBhyresh-MT。我在下面的答案中提供了详细信息 【参考方案1】:

很遗憾,CopyData Activity 中没有这样的规定。

但是,我只是尝试使用您提供的作为示例源和接收器与 CopyData Activity 的行,它只是按原样复制。我没有看到任何\\。也许您可以分享您拥有的确切管道,以及您正在使用的嵌套 XML、JSON 和 T-SQL 的详细信息。

复制:(使用所有默认设置和属性)

【讨论】:

您的回答提示了我解决此问题的正确方法。这是 csv 数据集。在将活动复制到 json 数据集之前,xml 被推送到突触表并导出到 csv 数据集。我修复了 csv 数据集的转义字符问题。谢谢,您的回答确实为我指明了解决方案。

以上是关于在 Azure 数据工厂中使用复制数据活动将 xml 解析为 json 时如何删除转义字符?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Azure 数据工厂中为与外键相关的表创建管道并执行复制活动?

在 Azure 数据工厂复制活动中使用“附加列”时,如果源上已经存在该列,是不是会在接收端复制该列?

如何使用 Azure 数据工厂中的每个活动合并文件

Azure 数据工厂链活动

在 Azure 数据工厂中使用 @item().name 设置“复制数据”源文件夹

Azure 数据工厂中的复制数据未完全读取文件