如何使用变量设置 json 主体中的键值?

How do I setting a value of a key in a json body with a variable?

我正在尝试在 json 对象中设置变量 MY_VARIABLE

* def MY_VARIABLE = 'USER_1'
* def loginRequestJson = { user: MY_VARIABLE , name: 'Some Name'}
* print loginRequestJson

但它输出 MY_VARIABLE 作为字符串文字,而不是我预期的 MY_VARIABLE 的值。

{ "user": "MY_VARIABLE", "name": "Some Name" }

我知道我可以进行字符串连接,但是如果有 5 个以上的变量,这看起来会很混乱。

* def loginRequestJson = "{ 'user': "+ MY_VARIABLE +" , 'name': 'Some Name'}"

是否有更优雅的方法将我的变量放入 json?

PS 也许我正在用 Pythonic 的方式思考字典,这可能不是本意。

是的,空手道有点不同。请花一点时间阅读:https://github.com/intuit/karate#embedded-expressions

但是如果您添加圆括号,Pythonic 或 JavaScript-ish 方式是可能的:

* def MY_VARIABLE = 'USER_1'
* def loginRequestJson = ({ user: MY_VARIABLE , name: 'Some Name'})

但空手道的首选方式是:

* def MY_VARIABLE = 'USER_1'
* def loginRequestJson = { user: '#(MY_VARIABLE)' , name: 'Some Name'}

你可以选择。