【问题标题】:Spring: JSON to Java Object using @RequestBodySpring:使用 @RequestBody 的 JSON 到 Java 对象
【发布时间】:2014-08-05 23:32:28
【问题描述】:

我正在使用 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 插件来调用 web 服务。 JSON object传递的是:

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

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

请帮忙。提前致谢!

【问题讨论】:

  • 看起来你的 JSON 字符串是错误的。查看报价
  • sorry.错写在这里。我已经编辑过了。

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


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    就这样做

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-10
      • 2013-03-04
      • 2017-08-23
      • 2015-06-21
      • 2018-01-23
      • 2011-10-25
      • 2011-12-05
      • 2015-03-08
      相关资源
      最近更新 更多