【问题标题】:Replace JSON key value without quotes [duplicate]替换不带引号的 JSON 键值 [重复]
【发布时间】:2019-01-30 06:42:03
【问题描述】:

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

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

我也尝试过 #(temp) 的嵌入式表达式逻辑,但它也做了同样的事情,并将其作为带有双引号的字符串。

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

* def data =
    """

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

}
    """
    * replace data.foo = temp

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

【问题讨论】:

    标签: rest karate


    【解决方案1】:

    使用set 而不是replace

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

    参考 - karate set documentation

    【讨论】:

    • 我已经尝试过使用 set。当我在设置后发布请求时,我可以再次看到它在发布时将其变为字符串。我需要以某种方式覆盖它。
    • 您能否用您尝试过的确切 sn-p 更新您的问题
    • 解决方法:将json转成字符串。使用 JAVA 助手替换变量。然后将更新后的字符串改回 json。然后贴出来。
    • 好..如果您希望可以在这里发布您的答案,这将很有帮助,您也可以接受它
    猜你喜欢
    • 2018-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-22
    • 1970-01-01
    • 2012-10-11
    • 1970-01-01
    • 2014-10-05
    相关资源
    最近更新 更多