我的有效载荷看起来像这样:
{
"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_price":"1500","sku_code":"2"}
添加到有效负载中。我正在使用以下代码:
* eval if(contains("3",dblist)) karate.set('pushRatesFromDS.sku_prices[]','{ "sku_price": "1500","sku_code":"3" }')
当我执行功能文件时,没有出现任何错误,但是键值未添加到我的有效载荷中。但是,如果我将此代码移到一个新的功能文件中并对其进行调用,则会将键值对添加到我的有效负载中。我的新功能文件中的代码如下:* set pushRatesFromDS.sku_prices[] = { "sku_price": "1500","sku_code":"2" }
答案 0 :(得分:1)
尝试一下:
* 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' })