从请求中提取json参数

时间:2014-03-15 20:07:28

标签: java spring

我正在尝试从请求中提取json参数,但我不能。 通过servletRequest中的getParameter方法,我可以得到post参数。 json参数没有任何名称,所以请求.getParameter(“?”)我无法填写问号

1 个答案:

答案 0 :(得分:2)

如果你准备了一个像json这样的确切结构的java类,请执行:

@RequestMapping(...)
public mycontrollerfunc(@RequestBody YourJsonClass body){}

如果没有,并且您希望将json作为字符串,请执行:

@RequestMapping(...)

public mycontrollerfunc(@RequestBody String body){}

修改
如果您需要从无法使用@RequestBody并且只能访问HttpServletRequest的方法中提取请求正文(您称之为“Json参数”),则可以执行以下操作:

String jsonFromRequestBody = CharStreams.toString(request.getReader());

在这种情况下,请求必须为HttpServletRequest,因此如果您使用的是Filter,则可能需要进行投射,例如:

HttpServletRequest request = (HttpServletRequest) req;