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

ADF中字符串参数解析为JSON失败:json()函数无法正常工作求助

问题原因分析
  • 首次报错:你将参数类型改为string,但实际传入的参数值仍是Object类型(可能是参数转换不彻底,或默认值未改为字符串),@json()函数要求输入为字符串/XML,因此触发类型不匹配错误。
  • 二次报错:给默认值加转义引号的方式错误,导致@json()解析后得到的不是合法JSON对象,而是纯字符串,无法通过属性选择器访问子字段。
可行的参数修改方案
  1. 设置标准JSON字符串参数值
    • 将原嵌套JSON对象转为标准转义字符串,比如原Object {"api_args":{"startDate":"2024-01-01"}} 需改为:"{\"api_args\":{\"startDate\":\"2024-01-01\"}}"(ADF中字符串双引号需用双反斜杠转义)。
    • 在ADF参数设置页,将my_args类型设为string,默认值填入上述转义后的JSON字符串。
  2. 正确使用解析表达式
    • 确认参数值为合法JSON字符串后,使用@json(pipeline().parameters.my_args).api_args.startDate 或 @json(pipeline().parameters.my_args)['api_args']['startDate'] 访问子字段,此时json()返回Object类型,支持属性选择。
  3. 验证参数类型与解析结果
    • 用ADF表达式测试工具验证:输入@typeof(pipeline().parameters.my_args),确认返回String;再测试@json(pipeline().parameters.my_args),确认解析为Object类型。
相关官方文档要点
  • ADF管道参数支持string、int、bool、array、object等类型,string类型需传入符合格式的字符串值。
  • json()函数:仅接受字符串或XML输入,将其转换为Object类型,输入不合法则报错。
  • ADF字符串转义规则:字符串中的双引号需用反斜杠转义,界面输入时需使用双反斜杠确保转义生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 18:42:11