在空手道中从 json 设置字段值

Setting field values from a json in karate

我有类似 data[name]data[city] 的表单字段名称,并且我将这些字段名称写在 json 文件中,如下所示

"request" : {
"data[name]":"",
"data[city]":""
}

我正在尝试使用空手道代码在功能文件中设置这些字段的值,如下所示

set request.data[name] = 'testuser'

但是当我在分配值后打印请求 json 时,json 如下所示

"request" : {
"data[name]":"",
"data[city]":""
"data":{ 
"name" : "testuser"}
}

我希望我的 json 看起来像下面

"request" : {
"data[name]":"testuser",
"data[city]":""
}

知道吗,我如何才能使用空手道代码正确设置上述字段值?

我的天哪谁设计了这个JSON>_<

你可以使用JS!

* def req = { 'data[name]': '', 'data[city]': '' }
* eval req['data[name]'] = 'foo'
* eval req['data[city]'] = 'bar'
* match req == { 'data[name]': 'foo', 'data[city]': 'bar' }

希望能给你更多的想法,你可以调用一个 JS 函数,并在需要时进行所有这些修改。