反序列化注解

@JsonCreator

用于指定一个构造方法,用于反序列化。

@Builder
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
    private String username;
    private Integer age;

    @JsonCreator
    public User(@JsonProperty("name") String username, @JsonProperty("age") Integer age) {
        this.username = username;
        this.age = age;
    }
}
String userStr = "{\"name\":\"job\",\"age\":18}";
User user = objectMapper.readValue(userStr, User.class);
// 打印结果:User(username=job, age=18)

@JacksonInject

用于指定一个属性,用于注入值。而不是从 JSON 中读取。

@JsonAnySetter

用于指定一个方法,用于反序列化时,将未知的属性值存储到一个 Map 对象中。

@JsonSetter

用于指定一个方法,用于反序列化时,将属性值设置到指定的属性中。

@JsonDeserialize

用于指定自定义的反序列化器。

最后更新于