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

如何在Logic Apps中按要求固定JSON节点与值的顺序?

在Azure Logic Apps中固定JSON键顺序的解决方法

Logic Apps默认会对JSON对象的键进行字母序重排,导致你在Compose中设置的顺序失效。以下是两种可靠的解决方法:

方法一:直接拼接JSON字符串

绕过Logic Apps的JSON序列化机制,手动按指定顺序拼接成JSON格式的字符串,输出顺序完全由你控制:

  1. 使用Compose或Set variable操作,通过字符串拼接生成目标JSON。如果包含动态内容,将变量或动态值插入对应位置:
    静态内容示例表达式:
    concat('{"@number":"1","Weight":2,"Dimensions":{"Length":1,"Width":2,"Height":3},"CustomerReferences":"Piece 1"}')
    
    含动态内容示例表达式:
    concat(
      '{"@number":"', variables('pieceNumber'), '",',
      '"Weight":', variables('pieceWeight'), ',',
      '"Dimensions":{"Length":', variables('dimLength'), ',"Width":', variables('dimWidth'), ',"Height":', variables('dimHeight'), '},',
      '"CustomerReferences":"', variables('customerRef'), '"}'
    )
    
  2. 在后续HTTP请求中,将请求体类型设置为Raw,直接使用拼接好的字符串作为请求体发送。

方法二:使用Liquid模板控制顺序

利用Liquid模板的严格输出特性,精准控制JSON键的顺序:

  1. 创建Liquid模板文件,按需求顺序编写JSON结构:
    {
      "@number": "{{piece.number}}",
      "Weight": {{piece.weight}},
      "Dimensions": {
        "Length": {{piece.dimensions.length}},
        "Width": {{piece.dimensions.width}},
        "Height": {{piece.dimensions.height}}
      },
      "CustomerReferences": "{{piece.customerRef}}"
    }
    
  2. 在Logic Apps中添加Transform JSON to JSON操作,关联你的Integration Account(需提前创建并上传Liquid模板),输入要转换的数据对象,选择上述Liquid模板。
  3. 操作输出的是严格按模板顺序生成的JSON字符串,直接作为HTTP请求体发送即可。

注意事项

  • 无论使用哪种方法,都要确保最终发送的是字符串格式的JSON,而非Logic Apps自动解析的JSON对象,避免被二次序列化重排。
  • 可以在发送前添加Compose操作查看输出内容,确认键顺序符合要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 10:26:04