Karate 使用空手道向json中添加新的键值对

Karate 使用空手道向json中添加新的键值对,karate,Karate,我的有效载荷如下所示: { "override_source": "DS", "property_code": "0078099", "stay_date": "2018-11-26T00:00:00.000000", "sku_prices": [ ], "persistent_override": false } 有一个数组dblist[“2”,“3”],它由1到4的数字组成。基于列表中的元素,我想将键值{“sku价格”:“1500”,“sku代码”:“2”}添加到

我的有效载荷如下所示:

{
  "override_source": "DS",
  "property_code": "0078099",
  "stay_date": "2018-11-26T00:00:00.000000",
  "sku_prices": [
  ],
  "persistent_override": false
}
有一个数组dblist
[“2”,“3”]
,它由1到4的数字组成。基于列表中的元素,我想将键值
{“sku价格”:“1500”,“sku代码”:“2”}
添加到我的有效负载中。我正在使用以下代码:

* eval if(contains("3",dblist)) karate.set('pushRatesFromDS.sku_prices[]','{ "sku_price": "1500","sku_code":"3" }')
当我执行我的功能文件时,我不会得到任何错误,但是键值不会添加到我的有效负载中。但是,如果我将此代码移动到一个新的特性文件并调用它,则键值对将添加到我的有效负载中。我的新功能文件中的代码如下所示:
*set pushRatesFromDS.sku_prices[]={“sku_prices”:“1500”,“sku_code”:“2”}

尝试以下操作:

* def foo =
"""
{
  "override_source": "DS",
  "property_code": "0078099",
  "stay_date": "2018-11-26T00:00:00.000000",
  "sku_prices": [
  ],
  "persistent_override": false
}
"""
* eval karate.set('foo', '$.sku_prices[]', { foo: 'bar' })