我正在使用Spring 4.1框架来开发webservices。当我返回一个Java对象作为响应时,它会自动转换为JSON并传递给客户端,所以我假设JSON解析器在classpath中并且配置正确。但是,它无法将请求体从JSON转换为Java对象,并且客户端获得的响应为400。
以下是webservice的外观:
public class Details{
public Details(){
}
int code;
int area;
}
@RequestMapping(value = "/api/update/{phoneNumber}", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<String> update(@PathVariable final String phoneNumber, @RequestBody Details details)
以下是请求的外观:
Method: Post
Content-Type: application/json; charset=utf-8
Body: {"code":0,"area":12}
如果我将请求主体收集为字符串并手动解析它然后它工作,所以它获得有效的JSON但由于某种原因它不会自动解析它。我不知道如何解决它。请帮忙。提前致谢。
答案 0 :(得分:1)
您的Details
类中包含私有属性,因此json-converter可能无法识别它们。
您有几种选择:
@JsonProperty
对其进行注释,然后将其保留为私有答案 1 :(得分:1)
最后我得到了这个原因。我正在使用不是静态的内部类。使这些静态修复问题。