t.me/atinfo_chat Telegram группа по автоматизации тестирования

RestAssured // Нужна помощь в десериализации части JSON

Теги: #<Tag:0x00007f9b0421cf40>

Здравствуйте,

есть такой endpoint: /users/{id}
возвращает:

{
    "code": 200,
    "meta": null,
    "data": {
        "id": 209,
        "name": "Manoj Gupta DC",
        "email": "dc_gupta_manoj@farrell.io",
        "gender": "Male",
        "status": "Inactive",
        "created_at": "2020-09-11T03:50:07.442+05:30",
        "updated_at": "2020-09-11T03:50:07.442+05:30"
    }
}

Его могу десериализовать через:
User user209 = given().when().get(EndPoints.specificUser, 209).as(User.class);

Также есть такой endpoint: https://***/public-api/users
который возвращает:

{
    "code": 200,
    "meta": {
        "pagination": {
            "total": 1590,
            "pages": 80,
            "page": 1,
            "limit": 20
        }
    },
    "data": [
        {
            "id": 1,
            "name": "The Hon. Akshita Singh",
            "email": "hon_the_singh_akshita@predovic.com",
            "gender": "Male",
            "status": "Active",
            "created_at": "2020-09-11T03:50:03.870+05:30",
            "updated_at": "2020-09-11T03:50:03.870+05:30"
        },
        {
            "id": 2,
            "name": "Acharyasuta Pandey",
            "email": "pandey_acharyasuta@kuphal.name",
            "gender": "Male",
            "status": "Active",
            "created_at": "2020-09-11T03:50:03.925+05:30",
            "updated_at": "2020-09-11T03:50:03.925+05:30"
        },
         ...

Вопрос: можно ли как-то десериализовать массив data в List < User >, при этом не сохраняя code и meta из ответа ?

можно
вот так должно сработать

List<User> userList = new ArrayList<>();
// Parse response
List<HashMap> dataList = response.path("data");
// convert HashMap to User and add to userList
dataList.forEach(data -> {
String jsonString = new JSONObject(data).toJSONString();
userList.add(new Gson().fromJson(jsonString, User.class));
        });

Для таких случаев можно использовать плагин для идеи RoboPOJOGenerator

Спасибо, гляну.