Karate 空手道-对无效的jsonpath引发异常

Karate 空手道-对无效的jsonpath引发异常,karate,Karate,我有一个Json响应,如下所示。这里的区别是我的Json主体有一个数字作为父节点 def response = """ { "22388043":[ { "firstName":"Romin", "lastName":"Irani", "phoneNumber":"408-1234567", "emailAddress":"romin.k.irani@gmail.com" } ] } """ 我想从响应体返回mob

我有一个Json响应,如下所示。这里的区别是我的Json主体有一个数字作为父节点

    def response =
"""
{
  "22388043":[
    {
      "firstName":"Romin",
      "lastName":"Irani",
      "phoneNumber":"408-1234567",
      "emailAddress":"romin.k.irani@gmail.com"
    }
  ]
}
"""
我想从响应体返回mobileNumber属性值。在这个场景中,我的响应中没有该属性。所以这里我想得到一个空值

因此,当我使用*defmobile=$.22388043[0].mobileNumber时,我得到了以下错误

路径:$['22388043'][0]['mobileNumber']没有结果。


请对此提出建议。

空手道确实为您提供了获取JSON密钥值的方法

希望此示例也能回答您的所有其他问题:

* def response =
"""
{
  "22388043":[
    {
      "firstName":"Romin",
      "lastName":"Irani",
      "phoneNumber":"408-1234567",
      "emailAddress":"romin.k.irani@gmail.com"
    }
  ]
}
"""
* def id = karate.keysOf(response)[0]
* match id == '22388043'
* def person = response[id][0]
* match person contains { firstName: 'Romin', lastName: 'Irani' }
* match person.mobileNumber == '#notpresent'

我没有看到任何名为mobileNumber的属性,我想你指的是phoneNumber?在这个响应中,我没有mobileNumber属性。当该属性存在时,该值将返回。我遇到的问题是,当属性不存在时,我得到的是此错误,而不是空值*def mobileNum=karate.get($.22388043[0].mobileNumber”)