替换不带引号的JSON键值

时间:2019-01-30 06:42:03

标签: rest karate

我在运行时的临时变量值为:[“ 1363097.0”] 我想用这个临时变量替换下面提到的文本。 但是,当我尝试替换命令时,它将其作为字符串并将值设为“ [“” 1363097.0“]”

现在,由于API规范,该值应为[“ 1363097.0”],并且API不接受该字符串。

我也尝试了#(temp)的嵌入式表达式逻辑,但是它也做同样的事情,并且使它成为带有双引号的String。

所以,如何使它直接获取值,而不将其理解为字符串而不是附加引号。

* def data =
    """

{
  "searchParameters": {
    "filters": [
      {
        "name": "Organisation",
        "operator": "=",
        "value": <foo>
      }
    ]
  }

}
    """
    * replace data.foo = temp

已经尝试使用set关键字更新JSON中的值,但它也将其设置为String并自动在其周围附加引号。

1 个答案:

答案 0 :(得分:1)

使用set代替replace

* def temp = ["1363097.0"]
* set data.searchParameters.filters[0].value = temp

参考-karate set documentation