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

Azure Logic App中@xml()函数JSON转XML输出序列化异常咨询

关于Azure Logic Apps中@xml()函数输出序列化的问题解答

我之前在处理Azure Logic Apps的JSON转XML需求时也踩过类似的坑,结合你提到的场景,给你梳理下关键要点:

  • @xml()函数的核心使用逻辑:
    这个函数的作用是把原生JSON对象转换为对应的XML节点,但它不会自动解析字符串形式的JSON。如果你的输入是被引号包裹的JSON字符串,哪怕内容完全合法,函数也会把它当成普通文本处理,最终输出就是带转义字符的序列化内容,这应该就是你碰到的问题。

  • 排查你的前置函数块问题:
    你提到有个前置函数块Add_Root_Element,重点要确认它的输出是原生JSON对象,而不是JSON字符串。举个实际的例子:

    • 如果Add_Root_Element输出的是类似这样的原生JSON:
      {
        "Root": {
          "Field1": "Value1",
          "Field2": "Value2"
        }
      }
      
      那么使用@xml(body('Add_Root_Element'))就能得到正常的XML节点:
      <Root>
        <Field1>Value1</Field1>
        <Field2>Value2</Field2>
      </Root>
      
    • 但如果Add_Root_Element输出的是字符串形式的JSON(比如用string()函数转换过):
      "{\"Root\": {\"Field1\": \"Value1\", \"Field2\": \"Value2\"}}"
      
      那@xml()就会生成序列化的结果:
      <string>{"Root": {"Field1": "Value1", "Field2": "Value2"}}</string>
      

    这种情况下,你需要先用json()函数把字符串解析成原生JSON对象,再传给@xml(),也就是:

    @xml(json(body('Add_Root_Element')))
    
  • 关联JSON转XML的完整场景优化:
    如果要输出标准的XML文档,还可以给转换后的XML加上声明头,比如:

    @concat('<?xml version="1.0" encoding="UTF-8"?>', xml(body('Add_Root_Element')))
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:00:04