Будьте уверены, используя Jayways Jsonpath? - PullRequest
0 голосов
/ 29 мая 2018

Я потратил много времени на изучение JsonPath с использованием версии Jayways, мой запрос следующий:

$.items[?(@.To[0].Mailbox == 'foobar')]..Body

Однако, это не работает с Rest-Assured, при выполнении мне показываютследующая ошибка:

java.lang.IllegalArgumentException: Invalid JSON expression:
Script1.groovy: 1: expecting EOF, found '[' @ line 1, column 34.
                            $.items[?(@.To[0].Mailbox == 'foobar')]..Body

Нужно ли переписать это выражение в формате GPath?если так, то как бы это выглядело?или я могу каким-то образом заставить Rest-Assured использовать это предпочтительное выражение JsonPath?

- это небольшой [WIP] фрагмент кода на данный момент, просто пытаюсь заставить выражение работать, затем яисправит метод правильно:

public String readInbox(String emailAddress) {
    Response response =  given().log().all().when().get(MESSAGES_ENDPOINT);
    JsonPath jsonPath = new JsonPath(response.asString());
    String emailAddress = jsonPath.getString("$.items[?(@.To[0].Mailbox == 'foobar')]..Body");
    System.out.println(accountVerificationEmailHyperlinkByEmailAddress);
    return "";
  }

1 Ответ

0 голосов
/ 31 мая 2018

решил эту проблему, просто исключив полную уверенность и используя jsonPath в теле ответа следующим образом:

emailBodies = JsonPath.read(given().when().get(MESSAGES_ENDPOINT).getBody().asString(), generatePayLoadForEmailPrefixOf(emailPrefix));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...