在空手道中从 json 数组中提取数据
Extract data from json array in Karate
在下面的 JSON 响应中,我需要为具有 'nationalityDecription' 的记录提取 'cid' 作为 'USA'。通过使用 作为参考,我在空手道功能文件中使用了以下位置,但第一行本身因语法错误而失败(尝试了不同的组合)。现在,我使用自定义 javascript 作为一种工作正常的解决方法。我需要帮助来检查我是否遗漏了任何语法。谢谢
响应:
{
"header": {
"Id": "12345678",
"timeStamp": "2018-09-17T10:09:812.000"
},
"dataRecords": [
{
"cid": "31H678",
"cidMeta": "00",
"nationalityDecription": "CHINA"
},
{
"cid": "31S421",
"cidMeta": "01",
"nationalityDecription": "USA"
}
]
}
特征文件:
* def record= $response.dataRecords[?(@.nationalityDecription=='USA')]
* def cid = record.cid
* def response = { "header": { "Id": "12345678", "timeStamp": "2018-09-17T10:09:812.000" }, "dataRecords": [ { "cid": "31H678", "cidMeta": "00", "nationalityDecription": "CHINA" }, { "cid": "31S421", "cidMeta": "01", "nationalityDecription": "USA" } ] }
* def cid = get[0] response.dataRecords[?(@.nationalityDecription=='USA')].cid
* match cid == '31S421'
在下面的 JSON 响应中,我需要为具有 'nationalityDecription' 的记录提取 'cid' 作为 'USA'。通过使用
响应:
{
"header": {
"Id": "12345678",
"timeStamp": "2018-09-17T10:09:812.000"
},
"dataRecords": [
{
"cid": "31H678",
"cidMeta": "00",
"nationalityDecription": "CHINA"
},
{
"cid": "31S421",
"cidMeta": "01",
"nationalityDecription": "USA"
}
]
}
特征文件:
* def record= $response.dataRecords[?(@.nationalityDecription=='USA')]
* def cid = record.cid
* def response = { "header": { "Id": "12345678", "timeStamp": "2018-09-17T10:09:812.000" }, "dataRecords": [ { "cid": "31H678", "cidMeta": "00", "nationalityDecription": "CHINA" }, { "cid": "31S421", "cidMeta": "01", "nationalityDecription": "USA" } ] }
* def cid = get[0] response.dataRecords[?(@.nationalityDecription=='USA')].cid
* match cid == '31S421'