jackson使用JsonCreator注解指定反序列化时使用的构造函数或静态工厂方法

    科技2022-07-10  134

    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
    Processed: 0.012, SQL: 8