Spring mvc-контроллер принимает объект JSON с переменным числом ключей/значений

Я знаю, что объект JSON, который мне нужно принять, всегда будет одним ключом и значениями. Я попытался написать мой MVC-контроллер Spring с карточкой @RequestBody и карточкой @RequestBody, но я всегда получаю 400 Bad Request. Когда я меняю свой @RequestBody на String, я вижу, что мои данные поступают, и ответ на Bad Request не возвращается. Можно ли написать что-то, чтобы принять произвольный объект JSON, который всегда будет соответствовать контракту о том, чтобы быть единственным ключом к одному стоимость?

@RequestMapping(value = "/advancedSearch", method = RequestMethod.POST,consumes ="application/json",produces = "application/json")
@ResponseBody
public MyResponse performAdvancedSearch(@RequestBody String advancedFormData) throws Exception{

это сопоставление, которое работает прямо сейчас со String...

образец JSON -

    {"name":"frank","Type":"Lumber"}

при отправке с внешнего интерфейса я вызываю JSON.stringify() для создания данных. Как правило, JSON всегда будет простым, как это ни один вложенный список/объекты просто прямой ключ/значения. Серверная сторона просто никогда не знает, сколько пар ключей будет входить, и он не знает всех потенциальных ключей, поэтому я не могу создать простой POJO.

Ответ 1

Сделай свою жизнь проще и создай класс

public class AdvancedFormData
    private String name;
    private String type; // make it lower case in your JSON too
    // appropriate getters and setters and a no-arg constructor for Jackson
}

и использовать

public MyResponse performAdvancedSearch(@RequestBody AdvancedFormData advancedFormData) throws Exception{