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

如何移除Array变量的方括号并保留多JSON对象结构

问题场景

通过For Each循环得到如下JSON数组:

[    
    {
        "cont": "",
        "productIdSAT": "53131602",
        "qunt": "1",
        "srvcId": "PACKETS",
        "volH": "22",
        "volL": "17.5",
        "volW": "27",
        "weight": "1"
    },
    {
        "cont": "",
        "productIdSAT": "53131602",
        "qunt": "1",
        "srvcId": "PACKETS",
        "volH": "22",
        "volL": "17.5",
        "volW": "27",
        "weight": "1"
    },
    {
        "cont": "",
        "productIdSAT": "53131602",
        "qunt": "1",
        "srvcId": "PACKETS",
        "volH": "22",
        "volL": "17.5",
        "volW": "27",
        "weight": "1"
    }
]

需要移除数组的方括号,将结果用于其他JSON payload。尝试用表达式replace(replace(string(outputs('Compose')),'[',''),']','')后,虽去掉了方括号,但数据变成带转义符的字符串:

"{\"cont\":\"\",\"productIdSAT\":\"53131602\",\"qunt\":\"1\",\"srvcId\":\"PACKETS\",\"volH\":\"22\",\"volL\":\"17.5\",\"volW\":\"27\",\"weight\":\"1\"},{\"cont\":\"\",\"productIdSAT\":\"53131602\",\"qunt\":\"1\",\"srvcId\":\"PACKETS\",\"volH\":\"22\",\"volL\":\"17.5\",\"volW\":\"27\",\"weight\":\"1\"},{\"cont\":\"\",\"productIdSAT\":\"53131602\",\"qunt\":\"1\",\"srvcId\":\"PACKETS\",\"volH\":\"22\",\"volL\":\"17.5\",\"volW\":\"27\",\"weight\":\"1\"}"

尝试转换为JSON时,仅得到单个对象,无法保留多对象结构,期望输出为:

{
        "cont": "",
        "productIdSAT": "53131602",
        "qunt": "1",
        "srvcId": "PACKETS",
        "volH": "22",
        "volL": "17.5",
        "volW": "27",
        "weight": "1"
    },
    {
        "cont": "",
        "productIdSAT": "53131602",
        "qunt": "1",
        "srvcId": "PACKETS",
        "volH": "22",
        "volL": "17.5",
        "volW": "27",
        "weight": "1"
    },
    {
        "cont": "",
        "productIdSAT": "53131602",
        "qunt": "1",
        "srvcId": "PACKETS",
        "volH": "22",
        "volL": "17.5",
        "volW": "27",
        "weight": "1"
    }
解决方案

核心思路:避免全数组转字符串再替换,改用数组元素拼接的方式处理

场景1:直接嵌入到目标JSON的数组字段

如果是要把这些对象放到其他JSON的数组类型字段中,不需要移除方括号,直接引用原数组即可。比如目标payload是:

{
  "orderItems": [/* 待填充对象 */]
}

直接用表达式outputs('Compose')替换注释部分,Power Automate会自动处理JSON结构的嵌入,生成合法的嵌套数组。

场景2:生成无方括号的对象序列字符串

如果确实需要无方括号的对象拼接结果,使用join()函数处理:

  1. 表达式写法:
    join(outputs('Compose'), ',')
    
    这个函数会遍历数组中的每个对象,自动将每个对象转为字符串,再用逗号分隔,最终得到的结果就是你期望的无方括号、无多余转义符的对象序列。
  2. 注意:单独的{...},{...}序列不是合法JSON结构,仅适合作为特定格式的片段使用;如果要嵌入到JSON中,需将其作为字符串值,或包裹到数组/对象中后再用json()函数转换。

原方法失效原因

使用string()转换整个数组时,会把整个数组转为带转义符的JSON字符串,此时{...},{...}不是合法JSON(合法JSON只能是单个对象或数组),所以转换回JSON时只会解析第一个对象。而join()是逐个处理数组元素,拼接后得到的是符合需求的对象序列字符串。


内容的提问来源于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.28 17:47:10