2015-08-18 3 views
1

Я использую структуру Rest-Assured для чтения и проверки ответов от службы REST. У меня есть следующие JSON блоб, вернулся из вызова POST, и мне нужно, чтобы извлечь значение для «chatNumber»:Как получить вложенное значение элемента списка в блоке ответа json

{ 
    "authorized": true, 
    "guest": { 
     "chatNumber": 371442, 
     "username": "billyBob", 
     "guestId": 37561, 
     "primary": true, 
     "coppaRestricted": false 
    } 
} 

Ответ JSON был сохранен объект под названием «Response».

Я хочу сделать что-то вроде:

String myValue = Response.path("chatNumber"); 

Но это не работает. path() не может найти «chatNumber». Существует синтаксис, который, по-видимому, отсутствует, чтобы получить значение «chatNumber» из списка «guest». Я не уверен, что даже использую правильный язык для описания «гостя» ...

Что мне делать, чтобы получить значение «chatNumber» из json blob выше?

Любая помощь здесь будет спасательной.

Спасибо,

Вульф

ответ

2

Так, с помощью лучших Devs, чем я здесь на работе, это как получить значение chatNumber в вышеприведенном JSon сгустка:

Используйте после импорта:

import com.jayway.restassured.RestAssured; 
import com.jayway.restassured.response.Response; 
import com.jayway.restassured.path.json.JsonPath; 
import static com.jayway.restassured.RestAssured.given; 

с сгустком ответа JSON, перечисленным выше (под названием Response) уже захваченный после вызова REST POST, сделайте следующее:

String myBlob = Response.asString(); 

int chatNumber = JsonPath.with(myBlob).get("guest.chatNumber"); 

Затем, если мы выводим содержимое chatNumber во время выполнения, как так:

System.out.println(chatNumber);

мы получаем:

371442 

Два дня моей жизни, затрачиваемое пытается понять это , Ugh ....

Надеюсь, кто-то еще немного поможет от моих страданий. :-)

+0

Вы должны взглянуть на документацию, это почти первый пример. https://github.com/jayway/rest-assured/wiki/Usage#object-mapping – Johan

Смежные вопросы