Spring:使用@RequestBody的JSON到Java对象

时间:2014-06-16 07:34:58

标签: jquery json spring web-services spring-mvc

我正在使用Spring Rest Web服务。我无法使用JSONObject转换为Java @RequestBody

控制器方法:

@RequestMapping(value="/test",method=RequestMethod.POST)
public @ResponseBody String test(@RequestBody Student s)
{

    System.out.print(s.getName()+s.getMark()+s.getRollNo());

    return "ok";
}

POJO课程:

 public class Student implements Serializable {


private static final long serialVersionUID = 1L;
private int mark;
private String name;
private int rollNo;
    // getters and setters
  }

Serlvet-context.xml中的MessageConverter:

    <beans:bean id="jacksonMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></beans:bean>
 <beans:bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<beans:property name="messageConverters">
  <beans:list>
    <beans:ref bean="jacksonMessageConverter"/>
  </beans:list>
</beans:property>
</beans:bean>

我使用POSTMAN rest客户端chrome插件来调用webservice。 JSON object传递的是:

{"mark":30,"name":"sam","rollNo":100}

我正在&#39; 415 Unsupported Media Type&#39;作为调用Web服务时的响应。

请帮忙。提前谢谢!

2 个答案:

答案 0 :(得分:5)

问题在于您为POSTMAN客户端调用Controller的方式。

它缺少Content-Type: application/json HTTP标头

答案 1 :(得分:0)

只需这样做

@RequestMapping(value="/test",method=RequestMethod.POST,consumes = MediaType.APPLICATION_JSON_VALUE)