BugBusters
16.08 · ред.
Как сделать вложение в тело 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 можно прекрасно вернуть в другой метод (например, в метод удаления тестовых данных) стрингой.
Пользуйтесь на здоровье)
еще контент в этом сообществе
еще контент в этом соообществе
BugBusters
16.08 · ред.
войдите, чтобы увидеть
и подписаться на интересных профи