Как в spring обработать body в виде json?

Пользователь

от nelle , в категории: Java , месяц назад

Как в spring обработать body в виде json?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от dayna , месяц назад

@nelle 

В Spring есть несколько способов обработки JSON-тела запроса.

  1. Использование аннотации @RequestBody:
1
2
3
4
@PostMapping("/example")
public ResponseEntity<SomeResponse> handleRequest(@RequestBody SomeRequest request) {
    // Обработка запроса
}


В этом примере SomeRequest - это модель, которая представляет JSON-тело запроса. Spring автоматически будет десериализовывать JSON-тело в объект SomeRequest.

  1. Использование аннотации @RestController и возврат объекта с помощью аннотации @ResponseBody:
1
2
3
4
5
6
7
8
9
@RestController
public class ExampleController {

    @PostMapping("/example")
    public SomeResponse handleRequest(@RequestBody SomeRequest request) {
        // Обработка запроса
        return response;
    }
}


В этом случае Spring автоматически будет десериализовывать и сериализовывать объекты для вас.

  1. Использование аннотации @RequestMapping с указанием типа consumes как MediaType.APPLICATION_JSON_VALUE:
1
2
3
4
@PostMapping(value = "/example", consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<SomeResponse> handleRequest(@RequestBody SomeRequest request) {
    // Обработка запроса
}


С помощью этого способа можно указать, что метод должен принимать только запросы с типом application/json.


Обратите внимание, что для работы с JSON-телом требуется наличие в проекте соответствующих библиотек, например, jackson-databind. Вы можете добавить её в зависимости Maven или Gradle.