繁体   English   中英

Spring:使用@RequestBody 将 JSON 转换为 Java 对象

[英]Spring: JSON to Java Object using @RequestBody

我正在使用 spring Rest Web 服务。我无法使用@RequestBodyJSON转换为 Java Object

控制器方法:

@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 插件来调用网络服务。 传递的JSON object是:

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

调用 Web 服务时,我收到“ 415 Unsupported Media Type ”作为响应。

请帮忙。 提前致谢!

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

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

就这样做

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM