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

如何用concat/replace函数解决Azure Logic Apps JSON参数左括号编码问题

Azure Logic Apps JSON参数左括号编码及引号冲突解决方法

问题背景

Azure Logic Apps会自动将JSON查询参数名称中的左括号[编码为~2,例如原始参数名parameters[0][field]会被转换为parameters~20]~2field]。手动用concat和replace拼接参数名时,容易出现单双引号兼容问题。

可行解决方法

方法1:使用表达式模式直接生成编码键名

避开直接在JSON视图中编写字符串,切换到表达式模式(点击输入框旁的fx按钮),通过replace函数直接生成编码后的键名:

  • 固定索引的键名示例:
    replace('parameters[0][field]', '[', '~2')
    
    执行后会生成parameters~20]~2field]
  • 动态索引的键名示例(结合循环或变量索引):
    replace(concat('parameters[', string(variables('currentIndex')), '][field]'), '[', '~2')
    
    其中variables('currentIndex')为存储动态索引的变量,string()用于将数字索引转为字符串类型。

值部分直接用表达式引用变量或其他输出,无需额外加引号,例如:

variables('dateStart')

方法2:通过对象变量构建参数集合

用setProperty函数动态构建参数对象,完全避免JSON引号冲突:

  1. 创建一个对象类型的变量(例如queryParams),初始值设为{}
  2. 依次添加参数属性,示例表达式:
    setProperty(variables('queryParams'), replace('parameters[0][field]', '[', '~2'), 'date_start')
    
    setProperty(variables('queryParams'), replace('parameters[0][value]', '[', '~2'), variables('dateStart'))
    
  3. 最终在需要使用参数的地方,直接引用variables('queryParams')即可,Logic Apps会自动处理对象到JSON的转换。

注意事项

  • 所有表达式需在Logic Apps的表达式编辑模式下编写,不要直接在JSON视图中嵌套字符串,避免引号转义错误。
  • 若涉及URL编码的标准场景,也可使用uriComponent('[')获取标准编码%5B,但需根据API实际要求选择对应编码方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 06:42:45