【问题标题】:How to dynamically remove json key in Karate?如何在空手道中动态删除 json 键?
【发布时间】:2021-08-05 16:03:30
【问题描述】:

我正在尝试根据条件删除一些 json 密钥。下面没有工作

 * def body
 * if (condition == 'true') remove body.path1.path2.key
(or)
 * def body = (condition == 'true')? (remove  body.path1.path2.key):body

我也不确定为什么下面的代码会出错

* def json = { a: 1,b:2 }
* def key = 'b'
* karate.remove('json', key)

错误: 评估 (js) 失败:karate.remove('json', key),java.lang.RuntimeException:意外路径:b

【问题讨论】:

    标签: karate


    【解决方案1】:

    这将起作用:

    * def json = { a: 1, b: 2 }
    * def key = 'b'
    * if (true) karate.remove('json', key)
    * match json == { a: 1 }
    

    所以remove 是一个空手道关键字,所以它与 JS 混合时不起作用。

    但是 1.0 以后的 JS 引擎将支持 JS delete 关键字。所以你现在可以这样做:

    * def json = { a: 1, b: 2 }
    * def key = 'b'
    * if (true) delete json[key]
    * match json == { a: 1 }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-07
      • 2018-06-29
      相关资源
      最近更新 更多