如何动态删除json键在空手道?



我试图根据条件删除一些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)失败:空手道。remove('json', key), java.lang.RuntimeException: unexpected path: b

可以:

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

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

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

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

最新更新