1.简介
jackson在反序列化时,默认使用对象的默认构造函数,如果默认构造函数不存在,jackson会报错
有些情况下,希望反序列化时使用指定的构造函数,并且将json中的属性键绑定到构造函数参数
jackson提供了以下注解:
JsonCreator:指定反序列化时使用的构造函数或静态工厂方法
JsonProperty:指定json属性键绑定到构造函数、工厂方法参数
2.实体
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
@Data
@Slf4j
public class User {
private Integer id;
private String name;
public User(){
}
@JsonCreator
public User(@JsonProperty("id") Integer id,@JsonProperty("name") String name){
log.info("调用指定User构造函数:" id "," name);
this.id = id;
this.name = name;
}
}
import com.fast