Karate 如何在空手道中找到动态关键值?

Karate 如何在空手道中找到动态关键值?,karate,Karate,我正在点击JiraAPI,根据循环名称获取循环id API:http://localhost:8080/rest/zapi/latest/cycle?projectId=78654&versionId=123 我得到以下回应: { "1345": { "totalExecutions": 0, "endDate": "", "description": "&qu

我正在点击JiraAPI,根据循环名称获取循环id

API:http://localhost:8080/rest/zapi/latest/cycle?projectId=78654&versionId=123

我得到以下回应:

{

"1345": {
    "totalExecutions": 0,
    "endDate": "",
    "description": "",
    "versionName": "Unscheduled",
    "projectKey": "ABC",
    "totalDefects": 0,
    "versionId": 123,
    "name": "First cycle",
    "totalFolders": 0,
    "projectId": 78654
},
"5789": {
    "totalExecutions": 0,
    "endDate": "",
    "description": "",
    "versionName": "Unscheduled",
    "projectKey": "ABC",
    "totalDefects": 0,
    "versionId": 123,
    "name": "Karate DEMO",
    "totalFolders": 0,
    "projectId": 78654
},
"6543": {
    "totalExecutions": 0,
    "endDate": "",
    "description": "",
    "versionName": "Unscheduled",
    "projectKey": "ABC",
    "totalDefects": 0,
    "versionId": 123,
    "name": "Second Cycle",
    "totalFolders": 0,
    "projectId": 78654
},
"recordsCount": 3
}
这里的Id是动态的,即134557896543


如何使用空手道jsonpath获取Id,即5789,其中名称为“空手道演示”

使用JSON转换来更改形状,从而更容易执行jsonpath。您还可以找到数据,因为
karate.forEach()
是一个“扫描”:

* def list = []
* def fun = function(k, v){ karate.appendTo('list', { key: k, val: v } )}
* karate.forEach(response, fun)
* def keys = $list[?(@.val.name=='Karate DEMO')].key