Каратэ - Исключение повышает недопустимый jsonpath - PullRequest
1 голос
/ 14 февраля 2020

У меня есть Json ответ, как показано ниже. Разница здесь в том, что мое тело Json имеет номер в качестве родительского узла.

    def response =
"""
{
  "22388043":[
    {
      "firstName":"Romin",
      "lastName":"Irani",
      "phoneNumber":"408-1234567",
      "emailAddress":"romin.k.irani@gmail.com"
    }
  ]
}
"""

Я хочу вернуть значение атрибута mobileNumber из тела ответа. В этом сценарии у меня нет этого атрибута в моем ответе. Поэтому здесь я хочу получить нулевое значение.

Поэтому, когда я использую * def mobile = $ .22388043 [0] .mobileNumber , я получаю ошибку ниже.

Нет результатов для пути: $ ['22388043'] [0] ['mobileNumber']

Пожалуйста, сообщите об этом.

1 Ответ

0 голосов
/ 14 февраля 2020

Каратэ дает вам возможность получить значения 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'
...