SpringBoot返回Json实体类属性⼤⼩写问题
fastjson忽略属性
问题:
如果前端使⽤的参数是⼤写的⽽不是标准的驼峰式写法,那么后台在进⾏参数的交互的时候会出现参数接收不到的问题
如:前端使⽤ Title ⽽后端实体类中式title 这样是不统⼀的;
解决:两种⽅式 Jackjson 和 Fastjson
Jackjson ⽅式:
通过@JsonProperty注解来解决⽐较⽅便,作⽤是把该属性的名称序列化(或者反序列化接收参数)为另外⼀个名称,如把trueName属性序列化为name,@JsonProperty(value="name")
如果注解放到属性上,则返回的时候既有⼤写也有⼩写,如下:
@JsonProperty("Ao")
private Integer Ao;
responseBody响应结果:{Ao:xxx,ao:xxx}
注解放在getter上完美解决,返回只有⼤写不再⾃动变为⼩写的问题。
@JsonProperty("Ao")
public Integer getAo() {
return Ao;
}
responseBody响应结果:{Ao:xxx}
Fastjson⽅式(Fastjson定制属性的序列化和反序列化):
引⽤处:
通过注解的⽅式来指定序列化和反序列化
//配置在get,set⽅法上
public class A {
private int id;
@JSONField(name="ID")
public int getId() {return id;}
@JSONField(name="ID")
public void setId(int value) {this.id = id;}
}
//配置在field上
public class A {
@JSONField(name="ID")
private int id;
public int getId() {return id;}
public void setId(int value) {this.id = id;}
}
// 使⽤format配置⽇期格式化
public class A {
// 配置date序列化和反序列使⽤yyyyMMdd⽇期格式      @JSONField(format="yyyyMMdd")
public Date date;
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。