我有一个看起来像这样的 JSON 数组 -
{ “products”: [ { “code”: “abc”, “name”: “test” }, { “code”: “abc2”, “name”: “test2” }, … ] }
我想循环 json 数组并使用空手道检查长度。 f 每个项目中的键数。使用上面的示例,键数的长度应为 2。任何帮助将不胜感激!
我尝试过通过这样做来获取钥匙
但是,它只返回 null 并且执行 karate.sizeOf 返回总大小而不是每个项目的大小。
我个人认为你应该做更好的断言,比如检查键和值。请参考这个答案。
但无论如何,这就是你的问题的答案:
* def products = [{a: 1, b: 2}, {x: 1, y: 2}]
* def sizes = products.map(x => Object.keys(x).length)
* match each sizes == 2
有关
map()
的说明,请参阅:https://stackoverflow.com/a/76091034/143475
并且
Object.keys()
是一个标准的JS函数,类似于karate.keysOf()
:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys