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