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

Logic App中Liquid模板如何将JSON对象映射为字符串输出

Logic App Liquid映射:将JSON对象转为字符串输出的问题

问题说明

在Logic App的Liquid映射中,尝试将输入的JSON对象作为字符串映射到输出的body字段时,发现body字段为空;使用json过滤器后仍未解决,需要实现将JSON对象序列化为转义后的字符串作为body值的输出格式。

输入示例

[ 
  { 
    "firstName": "FirstName1", 
    "lastName": "LastName1" 
  }, 
  { 
    "firstName": "FirstName2", 
    "lastName": "LastName2" 
  }, 
  { 
    "firstName": "FirstName3", 
    "lastName": "LastName3" 
  } 
]

尝试过的Liquid代码

[ 
    {%- for rec in content -%} 
        { 
            "BrokerProperties": { 
                "ContentType": "application/json", 
                "SessionId": "1" 
            }, 
            "body": "{{ rec }}" 
        } 
        {% if forloop.last == false %},{% endif %} 
    {%- endfor -%} 
]

期望输出

[ 
  { 
    "BrokerProperties": { 
      "ContentType": "application/json", 
      "SessionId": "1" 
    }, 
    "body": "{\"firstName\": \"FirstName1\",\"lastName\": \"LastName1\"}" 
  }, 
  { 
    "BrokerProperties": { 
      "ContentType": "application/json", 
      "SessionId": "1" 
    }, 
    "body": "{\"firstName\": \"FirstName2\",\"lastName\": \"LastName2\"}" 
  }, 
  { 
    "BrokerProperties": { 
      "ContentType": "application/json", 
      "SessionId": "1" 
    }, 
    "body": "{\"firstName\": \"FirstName3\",\"lastName\": \"LastName3\"}" 
  } 
]

解决方案

正确的Liquid代码

[ 
    {%- for rec in content -%} 
        { 
            "BrokerProperties": { 
                "ContentType": "application/json", 
                "SessionId": "1" 
            }, 
            "body": "{{ rec | json | replace: '"', '\\"' }}" 
        } 
        {% if forloop.last == false %},{% endif %} 
    {%- endfor -%} 
]

代码说明

  1. rec | json:将单个JSON对象序列化为标准JSON字符串;
  2. replace: '"', '\\"':把JSON字符串中的双引号转义为\",避免和外层JSON的双引号冲突,确保输出的JSON格式合法;
  3. 保留原有的循环和逗号处理逻辑,保证输出是合法的JSON数组。

也可以使用capture捕获JSON字符串后再转义,效果一致:

[ 
    {%- for rec in content -%}
        {% capture rec_json %}{{ rec | json }}{% endcapture %}
        { 
            "BrokerProperties": { 
                "ContentType": "application/json", 
                "SessionId": "1" 
            }, 
            "body": "{{ rec_json | escape }}" 
        } 
        {% if forloop.last == false %},{% endif %} 
    {%- endfor -%} 
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 04:54:51