如何在空手道中动态删除 json 键?
How to dynamically remove json key in Karate?
我正在尝试根据条件删除一些 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',关键),java.lang.RuntimeException:意外路径:b
这将起作用:
* 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 }
我正在尝试根据条件删除一些 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',关键),java.lang.RuntimeException:意外路径:b
这将起作用:
* 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 }