rest - 替换不带引号的 JSON 键值

标签 rest karate

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

现在,根据 API 规范,该值应为 ["1363097.0"],并且 API 不接受该字符串。

我也尝试过 #(temp) 的嵌入式表达式逻辑,但它也执行相同的操作,并将其作为带有双引号的字符串。

那么,如何让它直接获取值而不将其理解为字符串而不附加引号。

* def data =
    """

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

}
    """
    * replace data.foo = temp

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

最佳答案

使用设置而不是替换

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

引用 - karate set documentation

关于rest - 替换不带引号的 JSON 键值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54434668/

相关文章:

javascript - 我没有得到 Nodejs npm 包 https 的 https.get() 与 https.request() 方法之间的区别

rest - asp.net Web Api - 默认错误消息

angularjs - REST方式批量更新、创建、删除

rest - 在Spring REST应用程序中使用自定义消息处理通用HTTP异常

automated-tests - Karate - 输入字段/文本区域清除字段无法正常工作

gitlab - 在 Karate DSL 测试中使用环境变量

api - Postman/SoapUI API 调用后的数据存储

json - Karate ——JSON 响应解析

automated-tests - Karate ;单个场景中的多个 url

arrays - 当响应数组为空时,如何在 Karate 中发送有意义的失败原因?