在空手道中,如何找到长度 os json 的对象(地图)?
In karate, how do i find the length os json objject (map)?
我有这样的回复:
{
"Team:14051898": null,
"59a0a29fe4b04de817c2a635": {
"eid": "abc123",
"name": "Chris"
},
"57dc07aae4b00768fe90cbf7": null,
"Team:15199": {
"eid": "abc123",
"name": "Christin"
},
"59c53c15e4b066f69a1180d4": {
"eid": "abc123",
"name": "Michae"
},
"589cace8e4b0b32006e03299": {
"eid": "abc123",
"name": "Jay"
},
"59e0e2eae4b0c0e023297a2f": null
}
我需要找到其中的长度(团队数量)。我尝试使用:
* string expression = 'Object.keys(response).length'
* def result = karate.eval(expression)
* print result
还有 $.length 和其他几个选项。请帮我解决这个问题。
例如使用 karate.forEach()
有很多方法,但这是最简单的:
* def json = { a: 1, b: 2, c: 3 }
* def map = karate.toBean(json, 'java.util.HashMap')
* def count = map.size()
* match count == 3
编辑 - 现在有一个适用于数组和对象的 karate.sizeOf()
API
另一种使用 javascript 的方法是:
Scenario: MyTest
* def countKeys = function (obj) {return Object.keys(obj).length;}
* def response =
""" {
"Team:14051898": null,
"59a0a29fe4b04de817c2a635": {"eid": "abc123","name": "Chris"},
"57dc07aae4b00768fe90cbf7": null,
"Team:15199": {"eid": "abc123", "name": "Christin"},
"59e0e2eae4b0c0e023297a2f": null
}"""
* match 5 == countKeys(response)
我有这样的回复:
{
"Team:14051898": null,
"59a0a29fe4b04de817c2a635": {
"eid": "abc123",
"name": "Chris"
},
"57dc07aae4b00768fe90cbf7": null,
"Team:15199": {
"eid": "abc123",
"name": "Christin"
},
"59c53c15e4b066f69a1180d4": {
"eid": "abc123",
"name": "Michae"
},
"589cace8e4b0b32006e03299": {
"eid": "abc123",
"name": "Jay"
},
"59e0e2eae4b0c0e023297a2f": null
}
我需要找到其中的长度(团队数量)。我尝试使用:
* string expression = 'Object.keys(response).length'
* def result = karate.eval(expression)
* print result
还有 $.length 和其他几个选项。请帮我解决这个问题。
例如使用 karate.forEach()
有很多方法,但这是最简单的:
* def json = { a: 1, b: 2, c: 3 }
* def map = karate.toBean(json, 'java.util.HashMap')
* def count = map.size()
* match count == 3
编辑 - 现在有一个适用于数组和对象的 karate.sizeOf()
API
另一种使用 javascript 的方法是:
Scenario: MyTest
* def countKeys = function (obj) {return Object.keys(obj).length;}
* def response =
""" {
"Team:14051898": null,
"59a0a29fe4b04de817c2a635": {"eid": "abc123","name": "Chris"},
"57dc07aae4b00768fe90cbf7": null,
"Team:15199": {"eid": "abc123", "name": "Christin"},
"59e0e2eae4b0c0e023297a2f": null
}"""
* match 5 == countKeys(response)