2017-02-01 7 views
1

Я следующий REST API ответа:restassured - разбор ответа и поиск по значению

"items": 
[ 
     { 
      "empid": "1234", 
      "name": "Santosh", 
      "hiredby": "Mark", 
      "date": "2017-01-31,00:19:41 PST", 
    }, 
     { 
      "empid": "5678", 
      "name": "Kumar", 
      "hiredby": "Bob", 
      "date": "2017-01-31,08:30:31 PST" 
      } 
    ] 

Мой запрос: - Как я могу получить EmpID на основе запрашивая имя как Кумар.

Например: Мне нужно найти имя «Kumar» и получить его empid. (то есть, поиск по имени и получить его empid в качестве ответа) Я могу получить ответ и сохранить его в объекте Response. но, из объекта ответа, как я могу пройти и запросить, чтобы получить требуемое значение.

Кроме того, я попытался извлекая как:

String name = get(REST_ENDPOINT).then().body("items.name",hasItems("Kumar")).extract().path("items.empid").toString(); 

, когда я напечатать ответ я получаю коллекцию EmpId как [1234,5678], где, как я ожидаю, чтобы получить только 5678.

Нужно ли анализировать через JSONArray и JSONObject и повторять ответ?

Просьба предложить.

ответ

0

Вы можете использовать что-то вроде этого

response1.jsonPath().getList("collect { it.credentials.findAll { it.credentialType == 'Ban User Name'}.credentialId }.flatten()")