Добавление новой пары ключ-значение в JSON с использованием каратэ - PullRequest
0 голосов
/ 30 ноября 2018

Моя полезная нагрузка выглядит следующим образом:

{
  "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" }

1 Ответ

0 голосов
/ 30 ноября 2018

Попробуйте это:

* 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' })
...