首页 > 解决方案 > 如何在带有变量的 json 正文中设置键的值?

问题描述

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

* 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的方式思考字典,这可能不是本意。

标签: karate

解决方案


是的,空手道有点不同。请花一点时间阅读: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'}

您可以选择。


推荐阅读