前端传json数据key为大写字母后端接收不到?

前端传json数据key为大写字母后端接收不到?

今天又发现一个奇葩问题,我后端使用实体类(属性均为全大写字母)接收前端的json数据,发现当key为小写时数据能正常接收,key为大写时就接收不到数据了。

{
  "list": [
    {"TIME":"2021-01-01","BPZ_LEV":null,"BPZ_INQ":null,"ROW_ID":1}
  ]
}

经查阅发现只要在实体类的每个属性加上@JsonProperty注解即可解决这个问题。

public class KeyStationUpdateVO {
	@ApiModelProperty(value="日期",example="2019-01-01")
	@NotNull
	@JsonProperty
	@Pattern(regexp = "^\\d{4}-\\d{2}-\\d{2}$", message = "日期格式不正确")
	private String TIME;
}

此外,@JsonProperty注解还可以给属性定义别的名称,该对象将按照你给的别名进行序列化。

public class KeyStationUpdateVO {
	@ApiModelProperty(value="日期",example="2019-01-01")
	@NotNull
	@JsonProperty("date")  //此时该属性序列化时key会变为date
	@Pattern(regexp = "^\\d{4}-\\d{2}-\\d{2}$", message = "日期格式不正确")
	private String TIME;
}

Copyright: 采用 知识共享署名4.0 国际许可协议进行许可

Links: https://www.keikei.vip/archives/前端传json数据key为大写字母后端接收不到