我试图根据条件删除一些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 }