Как я могу легко разделить значения JSON, которые отправляются в одном и том же запросе?
При условии, что я отправляю JSON на свой сервер:
{"first":"A","second":"B"}
Если я реализую следующий метод вКонтроллер:
@RequestMapping(value = "/path", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
public void handleRequest(@RequestBody String input) {
// ...
}
, тогда параметр input
будет представлять собой строку со всем объектом JSON, {"first":"A","second":"B"}
.То, что я действительно хочу, - это две отдельные строки (или строка и int, в зависимости от того, что подходит для конкретного запроса) только с двумя значениями (другие пары ключ / значение, которые клиент может отправить, должны игнорироваться).
Если бы строки были отправлены как параметры запроса вместо тела запроса JSON, это было бы просто:
@RequestMapping(value = "/path", method = RequestMethod.POST)
public void handleRequest(@RequestParam("first") String first,
@RequestParam("second") String second) {
// ...
}
Я знаю, что могу создать простой класс компонента, который можно использовать вместе с@RequestBody
аннотация, которая будет содержать A
и B
при использовании, но выглядит как обходной путь, поскольку они будут иметь разные цели внутри веб-приложения.
Зависимости: org.springframework: spring-web: 3.1.0.RELEASE org.codehaus.jackson: jackson-mapper-asl: 1.9.3