关于fastJson解析出的实体类为null问题
最近使用fastJson解析实体类的时候,突然发现解析出的类为null。经过一番查找,发现fastJson在解析数据的时候,会先在对应的实体类种寻找默认的构造函数,如果没有默认构造函数,只有有参构造函数,那么最后解析出来的对象会变成null,如果都没有则会报错。
public class SubmitResultBO{
Long id;
String tips;
public SubmitResultBO(Long id){
this.id = id;
}
public SubmitResultBO(String tips){
this.tips = tips;
}
// public SubmitResultBO(){
//
// }
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getTips() {
return tips;
}
public void setTips(String tips) {
this.tips = tips;
}
@Override
public String toString() {
return "SubmitResultBO{" +
"id=" + id +
", tips='" + tips + '\'' +
'}';
}
public static void main(String [] args){
SubmitResultBO obj = new SubmitResultBO("test");
String content = JSON.toJSONString(obj);
SubmitResultBO tt = JSON.parseObject(content, SubmitResultBO.class);
System.out.println(tt.getTips());
}
}
最终返回结果id 和 tips都为null。
去掉默认构造函数的注释之后,才会有正常值。
记录一下小错误。