Как сделать вложение в тело JSON при сериализации.

Пост, скорее для грейда AQA «джун +» или «миддл -» 🙂

Итак, нужно передать обычный и ничем не примечательный POST-запрос. Но структура итогового тела - вложенная:

{ "idEdge": 0, "idMatrix": 50, "esrst": "23640", "section": "12-16СП", "idFrom": 169446, "idTo": 169423, "direction": 0, "minTime": 0, "maxTime": 0, "sectionTo": "string", "matrixSignals": [ { "id_edge": 0, "id_signal": 0, "esrst": "string", "sig_code": "string", "state": "string", "type_el": "string" } ] }

То есть имеется массив в запросе. Как это передать, сделав красиво и чтобы техлид или старший коллега тебе не обоссал руки по итогу ревью твоего кода?

Нам поможет эрой лист )

Вот обычна сериализация: // Сериализация. GraphEditRegimeJsonConstructor3 graphEditRegimeJsonConstructor3 = new GraphEditRegimeJsonConstructor3(); graphEditRegimeJsonConstructor3.setIdEdge(0); graphEditRegimeJsonConstructor3.setIdMatrix(Integer.valueOf(idMatrix)); graphEditRegimeJsonConstructor3.setEsrst(esrst); graphEditRegimeJsonConstructor3.setSection(section); graphEditRegimeJsonConstructor3.setIdFrom(Integer.valueOf(idFrom)); graphEditRegimeJsonConstructor3.setIdTo(Integer.valueOf(idTo)); graphEditRegimeJsonConstructor3.setDirection(0); graphEditRegimeJsonConstructor3.setMinTime(0); graphEditRegimeJsonConstructor3.setMaxTime(0); graphEditRegimeJsonConstructor3.setSectionTo("sectionTo");

А вот вложение в неё массива: // Вложенные данные на передачу. List<MatrixSignals> matrixSignalsList = new ArrayList<>(); MatrixSignals matrixSignals = new MatrixSignals(); matrixSignals.setId_edge(0); matrixSignals.setId_signal(0); matrixSignals.setEsrst("esrst"); matrixSignals.setSig_code("sig_code"); matrixSignals.setState("state"); matrixSignals.setType_el("type_el"); // Добавляем созданный объект в список matrixSignalsList.add(matrixSignals);

// Вложение данных друг в друга. graphEditRegimeJsonConstructor3.setMatrixSignals(matrixSignalsList);

Gson gson = new Gson(); String json = gson.toJson(graphEditRegimeJsonConstructor3);

Response response = given() .spec(spec) .body(json) .when() .post(endPoint) .then() .log().all() .statusCode(HttpStatus.SC_OK) .extract().response();

На скринах - лист обведён красным прямоугольником.

Данные успешно передаются и итоговый JSON можно прекрасно вернуть в другой метод (например, в метод удаления тестовых данных) стрингой.

Пользуйтесь на здоровье)

Как сделать вложение в тело JSON при сериализации. | Сетка — новая социальная сеть от hh.ru Как сделать вложение в тело JSON при сериализации. | Сетка — новая социальная сеть от hh.ru
repost

93

input message

напишите коммент

еще контент в этом сообществе

еще контент в этом соообществе

войдите, чтобы увидеть

и подписаться на интересных профи

в приложении больше возможностей

пока в веб-версии есть не всё — мы вовсю работаем над ней

сетка — cоциальная сеть для нетворкинга от hh.ru

пересекайтесь с теми, кто повлияет на ваш профессиональный путь