You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure Data Factory中用特殊字符替换JSON中的单引号

解决ADF中JSON单引号替换及格式化问题

问题原因

你之前的replace(@{variables('JsonData')},''', '*')表达式失效,核心问题有两个:

  1. 变量引用错误:在ADF表达式中,直接用@{}包裹变量会将变量值直接插入表达式,破坏语法结构(比如变量里的双引号会导致表达式解析失败),应该直接使用variables('变量名')调用变量。
  2. 单引号转义错误:ADF基于.NET表达式语法,字符串中表示单个单引号需要用两个单引号转义,即'''(外层两个单引号包裹字符串,内部两个单引号表示一个实际的单引号)。

正确的单引号替换方案

方案1:直接替换整个JSON字符串中的单引号

如果只需要替换所有单引号,使用以下表达式:

replace(variables('JsonData'), '''', '*')

执行后,"Prop_2":"Horse'"会变为"Prop_2":"Horse*"。

方案2:解析JSON后精准替换指定属性

如果需要针对JSON中的特定属性(比如Prop_2)处理,建议先解析JSON为对象,修改后再序列化,避免破坏JSON结构:

  1. 解析JSON字符串为对象:
json(variables('JsonData'))
  1. 替换目标属性的单引号并重新构造JSON:
string(createObject(
    'Prop_2', replace(json(variables('JsonData')).Prop_2, '''', '*')
))

这种方式更安全,不会误替换JSON结构中的其他符号。

JSON格式化

如果需要生成格式化后的JSON字符串,ADF的string()函数默认输出紧凑格式,若要格式化,可以结合json()和string()操作,或者在后续活动(如Copy Activity)中配置输出格式,也可以通过ADF字符串操作函数手动拼接换行和缩进实现自定义格式化。

内容的提问来源于stack exchange,提问作者Developer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 10:59:54