通用注解

@JsonProperty

用于指定属性在序列化时的名称。

@Builder
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
    @JsonProperty("name")
    private String username;
    private Integer age;
}
User user = User.builder().username("job").age(18).build();
String userStr = objectMapper.writeValueAsString(user);
// 打印结果:{"name":"job","age":18}

@JsonFormat

用于指定属性在序列化时的格式。

@Builder
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
    private String username;
    private Integer age;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
}

@JsonUnwrapped

用于指定属性在序列化时,将属性值展开。

@JsonView

用于指定属性在序列化时,根据不同的视图序列化。

@JsonManagedReference, @JsonBackReference

用于解决循环引用问题。例如:UserRole 之间存在循环引用。

@JsonIdentityInfo

用于指定在序列化和反序列化时,如何处理循环引用。

@JsonFilter

用于指定一个过滤器,用于序列化时过滤属性。

最后更新于