直接举例说明。Spring Boot 版本是 v2.7.5 ,Jackson 默认版本,Jackson 的property-naming-strategy
是默认的LOWER_CAMEL_CASE
,使用了 Lombok 。
我现在有个 DTO:
@Getter
@Setter
public class HelloReq {
private String eMail;
private String bColor;
}
有个 RestController 方法:
@PostMapping(value = "/public/testWord")
public HelloReq testDatetimeObj(@RequestBody HelloReq req) {
return req;
}
当 Post 一个 JSON 过去:
{
"eMail": "eMail@gmail1.com",
"email": "email@gmail2.com",
"bcolor": "blue",
"bColor": "black"
}
响应的是:
{
"email": "email@gmail2.com",
"bcolor": "blue"
}
也就是说 DTO 中aBcd
形式的字段在序列化和反序列化时被当做abcd
处理了。
各位知道是什么原因吗?有什么解决办法。
目前是通过@JsonProperty("bColor")
注解解决这个问题,请问还有什么全局的办法吗?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.