错误原因:
在Spring MVC中,使用@RequestBody
注解可以接收前端发送的JSON数据,并将其映射到后端对应的Java对象。如果后端类的属性名是大写(例如FirstName
),而JSON中的属性名是小写(例如firstName
),这可能会导致映射失败,从而导致接收到的对象属性为null
。
解决方法:
-
确保JSON中的字段名称与后端类的属性名称完全匹配,包括大小写。
-
如果无法改变JSON中的字段名称,可以使用
@JsonProperty
注解来指定属性名称。
在Demo中:
前端,浏览器看到的请求载荷:
然后在后端,我们拿到的映射为null:
规范写法,是字段名要小写的,我这里的类,里面的属性名都是头大写的。
后面,只需要将前端的字段,以及class类的字段全部写成小写,就解决了这个问题:
前端捕获:
后端捕获:
如果前端不愿意修改字段名为全小写,后端还可以通过在类里面的属性名上加@JsonProperty
注解来指定属性名称。