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

Azure Logic Apps Compose动作中如何生成正确的JSON数组结构

解决Azure Logic Apps Compose动作中变量被转成字符串数组的问题

这个问题我之前做Logic Apps自动化的时候也碰到过,核心原因就是你手里的variables('result')是字符串格式的JSON数组,不是真正的JSON数组对象。直接把它塞进Compose的JSON结构里,Logic Apps会自动把字符串用双引号包裹并转义内部引号,就出现了你看到的带引号的错误结果。

给你两个实用的解决办法:

方法1:用json()函数实时解析变量

在Compose动作的JSON主体里,不要直接写variables('result'),而是用json()函数把字符串转成真正的JSON数组:

{
  "place": @json(variables('result'))
}

这样Logic Apps会先把字符串形式的数组解析成JSON对象,再嵌入到最终结构里,就能得到你想要的{"place": [{"visit":"name"}, {"visit":"name"}]}格式。

方法2:提前把变量转成JSON数组(更推荐)

如果你的result变量是之前步骤生成的(比如API返回的字符串、拼接出来的字符串),可以在设置变量的时候就用json()函数把它转成JSON数组类型:

json('[ { "visit":"name" }, { "visit":"name" } ]')

之后在Compose里直接引用变量就行:

{
  "place": @variables('result')
}

这种方式更清晰,避免后续重复做解析操作。

额外验证小技巧

你可以在Compose动作后面加一个Parse JSON动作,用下面的schema验证输出是否符合预期:

{
  "type": "object",
  "properties": {
    "place": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "visit": {
            "type": "string"
          }
        },
        "required": ["visit"]
      }
    }
  },
  "required": ["place"]
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:59:08