@RequestBody bean里面拿不到属性
时间: 2023-08-23 15:17:55 浏览: 114
解读@RequestBody的正确使用方法
回答: 当使用@RequestBody注解时,如果请求的JSON串中的属性名与bean中的属性名不一致,可以通过给每个属性指定别名的方式解决。可以在bean中使用@JsonProperty注解来指定属性的别名,例如:\[1\]。这样就可以将客户端传过来的变量赋值到相应的bean中了。
另外,需要注意的是,@RequestBody一般用来处理非Content-Type: application/x-www-form-urlencoded编码格式的数据。在GET请求中,由于没有HttpEntity,所以@RequestBody并不适用。而在POST请求中,通过HttpEntity传递的参数,需要在请求头中声明数据的类型Content-Type。SpringMVC会使用HandlerAdapter配置的HttpMessageConverters来解析HttpEntity中的数据,并将其绑定到相应的bean上。\[2\]
此外,如果你在使用Spring Boot时遇到了JSON属性首字母大小写的问题,可以考虑使用fastjson作为JSON解析框架。Spring Boot默认使用的是Jackson,对于从.NET转Java的项目来说,首字母大写的属性会自动转为小写,这可能导致前端出现问题。使用fastjson可以解决这个问题,可以参考这篇文章来了解如何在Spring Boot中使用fastjson:\[3\]。
#### 引用[.reference_title]
- *1* [spring中@RequestBody,bean中属性名和json不一致解决方案](https://blog.csdn.net/yueguanyun/article/details/80265381)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [SpringMVC @RequestBody 参数映射不上,@RequestBody 报错](https://blog.csdn.net/liuzhenteng521/article/details/82592245)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [springboot @RequestBody bean 对象 为空问题](https://blog.csdn.net/weixin_43531940/article/details/109015203)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文