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

如何在Karate中更新含连字符的RequestBody变量?

问题解决:赋值带连字符的对象属性时的语法错误

问题还原

场景:验证关闭MFA时更换所有者手机号的OTP。读取validateOTP.json作为请求体(requestBody)后,执行requestBody.headers.X-lover-Merchant-Id = merchantId时触发语法错误,报错:

org.graalvm.polyglot.PolyglotException: SyntaxError: Unnamed:1:37 Invalid left hand side for assignment

错误原因

对象属性名包含连字符(-)时,不能使用点号(.)语法访问或赋值——这类脚本语言会把X-lover-Merchant-Id解析成X减lover减Merchant减Id的表达式,导致赋值左侧变成无效的运算式。

解决办法

改用方括号语法访问属性,把带连字符的属性名用字符串包裹:

requestBody.headers['X-lover-Merchant-Id'] = merchantId

这样就能正确识别完整的属性名,完成赋值操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 02:13:09