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

Power Automate调用Smartsheet API时MULTI_PICKLIST字段JSON传参异常

Power Automate调用Smartsheet API传MULTI_PICKLIST字段转义问题解决

问题根因

出现双引号自动转义的核心原因是:你尝试用字符串替换的方式手动拼接JSON数组结构,传入的内容本质是普通字符串而非原生数组类型,Power Automate在序列化JSON时会自动将字符串内的双引号标记为特殊字符做转义,最终生成不符合接口要求的格式。

可行解决方案(推荐优先用第一种)

方案1:构造原生数组传参(无转义问题,稳定性最高)

不要手动拼接带双引号的字符串,直接将逗号分隔的选项值处理为Power Automate原生数组类型,平台序列化时会自动生成符合JSON规范的数组结构,不会产生多余转义符:

  1. 提取vServices变量存储的实际选项值:你的vServices变量实际有效值在value字段,内容为Test1, Test2,用split表达式将其转为数组:
    split(trim(variables('vServices')?['value']), ', ')
    
    如果选项之间的空格不固定,可以用select表达式兼容格式差异,自动去除每个选项前后的空格:
    select(split(variables('vServices')?['value'], ','), trim(item()))
    
    你可以新建一个数组类型变量存储上述表达式的输出,也可以直接在请求体中内联使用。
  2. 构造HTTP请求体时,直接将数组绑定到values字段,不要给变量额外套引号、也不要手动给数组元素加引号,正确的字段写法如下:
    {
        "columnId": 6945615984781188,
        "objectValue": {
          "objectType": "MULTI_PICKLIST",
          "values": @{split(trim(variables('vServices')?['value']), ', ')}
        }
    }
    
    注意:这里不需要给values的变量内容额外套方括号,split/select输出的结果本身就是数组结构,重复套方括号会生成嵌套数组导致报错。

验证方式

在HTTP请求动作前新增一个「撰写」动作,将构造完成的请求体作为撰写内容,测试运行流后查看撰写动作的输出,确认values字段格式为["Test1","Test2"]、无多余\转义符,即可正常调用接口完成填充。

避坑提示

  • 禁止用replace函数手动替换逗号为","拼接字符串,这种方式生成的是普通字符串而非数组,必然触发双引号转义问题。
  • 不要在动态内容/表达式的外层手动包裹双引号,原生字符串类型的值传入JSON结构时,Power Automate会自动添加所需的双引号,手动添加会导致重复转义。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 20:03:25