如何自動解析json到post請求中的多個參數以及內容類型是「application/json」? 例如,我有這樣一個控制器的方法:在post請求中使用spring解析json內容到多個參數中mvc
@RequestMapping(value = "/test", method = RequestMethod.POST)
public Object testPost(@RequestBody Student student) {
return student;
}
「學生」 類是:
public class Student {
private Integer id;
private String name;
getter&setter
}
和JSON是:
{"student":{"id":1,"name":"測試"}}
控制器返回空物體(當然不是null,而「id」和「name」屬性爲空)。 我知道什麼時候該JSON是它的工作:
{"id":1,"name":"測試"}
或扭曲我的學生在其他類中的「學生」的領域,但我不能這樣做。 我發現它不能使用@RequestParams或@ModelAttribute,因爲在RequestParamMethodArgumentResolver和ModelAttributeMethodProcessor中,它們只能在ServletRequest#getParameter中找到值。 那麼,春天mvc能解決這個問題還是我只能做這個習慣? (請原諒我,我的英語很糟糕......)
感謝幫助,我不能完成的學生,因爲我使用的是公司內部的工具,也許這不是一個很常見的功能,使我決定寫一個自定義參數解析器(HandlerMethodArgumentResolver)。
_「將學生包裹在其他班的」學生「字段,但我不能這樣做」_爲什麼不呢?如果你不能這樣做,那麼你也不能做其他事情。 – zeroflagL
@zeroflagL他可以使用@ ModelAttribute – achabahe
@achabahe我已經嘗試@ ModelAttribute,並且我讀過源代碼,你可以發現@ ModelAttribute只讀請求#getParameterMap用於解析代碼中的參數:ModelAttributeMethodProcessor#resolveArgument- > DefaultDataBinderFactory#createBinderInstance-> WebRequestDataBinder#bind –