转义 Azure 液体映射中的 xml 编码引号



我一直在为以下问题而苦苦挣扎。我有一个 xml,必须使用 Azure 上的液体映射转换为 json。有时节点包含 xml 编码的双引号,如下所示:

<node>
    <value>&quot;some string&quot;and the rest</value>
</node>

我的液体映射如下所示:

"name":"{{ node.value }}"

映射的结果是以下错误:

{
  "Code": "IncorrectLiquidTransformOutputType",
  "Message": "An error occurred while converting the transformed value to JSON. The transformed value is not a valid JSON. 'After parsing a value an unexpected character was encountered: s. Path '[205].node[9].value', line 32305, position 13.'",
  "Details": [
    {
      "Code": "IncorrectLiquidTransformOutputType",
      "Message": "{"ClassName":"Microsoft.Azure.Function.Common.ErrorResponses.ErrorMessageException","Message":"An error occurred while converting the transformed value to JSON. The transformed value is not a valid JSON. 'After parsing a value an unexpected character was encountered: s. Path '[205].node[9].name', line ....., position 13.'","Data":null,"InnerException":{"ClassName":"Newtonsoft.Json.JsonReaderException","Message":"After parsing a value an unexpected character was encountered: s. Path '[205].node[9].value'....",
      "Details": null,
      "InnerError": null
    }
  ],
  "InnerError": null
}

这意味着字符 " 被正确解码为双引号,然后它会导致 json 出现问题。我需要保持这个角色是这样的:

"name":""some string"and the rest"

有什么想法怎么做吗?

我遇到了完全相同的问题,但是在通过液体转换之前,我将xml转换为json。因此,转换会获得一个正确转义的 json 字符串:

"name":"William "Billy" Bob" 

我测试了上面提出的解决方案(看起来有点奇怪,因为它用相同的值替换了任何出现(,起初它没有做任何事情。但是,经过一番摆弄,我删除了第一个替换,然后它实际上起作用了。

{{ node.value | Replace: '"', '"'}}

您是否尝试在输出中转义它们?

"name":"{{ node.value |替换: "\" , "\" |替换:"\", "\"}}">

最新更新