从空手道中的json数组中提取数据

nag*_*pai 1 karate

在下面的 JSON 响应中,我需要为“nationalityDecription”为“USA”的记录提取“cid”。通过使用此查询作为参考,我在空手道功能文件中使用了以下 loc,但第一行本身因语法错误而失败(尝试了不同的组合)。现在,我使用自定义 javascript 作为一种工作正常的解决方法。我需要帮助来检查我是否在语法上遗漏了任何内容。谢谢

回复:

{
    "header": {
        "Id": "12345678",
        "timeStamp": "2018-09-17T10:09:812.000"
    },
    "dataRecords": [
        {
            "cid": "31H678",
            "cidMeta": "00",
            "nationalityDecription": "CHINA"
        },
        {
            "cid": "31S421",
            "cidMeta": "01",
            "nationalityDecription": "USA"
        }
    ]
} 
Run Code Online (Sandbox Code Playgroud)

特征文件:

* def record= $response.dataRecords[?(@.nationalityDecription=='USA')] 
* def cid = record.cid
Run Code Online (Sandbox Code Playgroud)

Pet*_*mas 5

* 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'
Run Code Online (Sandbox Code Playgroud)