【问题标题】:Extract data from json array in Karate从空手道中的json数组中提取数据
【发布时间】:2018-09-19 02:46:25
【问题描述】:

在下面的 JSON 响应中,我需要为“nationalityDecription”为“USA”的记录提取“cid”。通过使用this query 作为参考,我在空手道功能文件中使用了以下 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"
        }
    ]
} 

功能文件:

* def record= $response.dataRecords[?(@.nationalityDecription=='USA')] 
* def cid = record.cid

【问题讨论】:

    标签: karate


    【解决方案1】:
    * 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'
    

    【讨论】:

    • 这工作正常,不知道甚至 get[*] 也是可能的。谢谢彼得。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-09
    相关资源
    最近更新 更多