@JsonProperty | 用于属性,把属性的名称序列化时转换为另外一个名称。示例:@JsonProperty("birth_date") private Date birthDate |
@JsonIgnore | 可用于字段、getter/setter、构造函数参数上,作用相同,都会对相应的字段产生影响。使相应字段不参与序列化和反序列化。 |
@JsonIgnoreProperties | 该注解是类注解,使得相应字段不参与序列化和反序列化。eg:@JsonIgnoreProperties({"password","id"}) public class Person |
@JsonFormat | 用于属性或者方法,把属性的格式序列化时转换成指定的格式。示例:@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm") public Date getBirthDate() |
@JsonPropertyOrder | 该注解是类注解,和 @JsonProperty的index属性类似,指定属性在序列化时 json 中的顺序 , 示例:@JsonPropertyOrder({ "birth_Date", "name" }) public class Person |
@JsonCreator | 用于构造方法,和 @JsonProperty 配合使用,适用有参数的构造方法。示例:@JsonCreator public Person(@JsonProperty("name")String name) {…} |
@JsonAnySetter | 用于属性或者方法,设置未反序列化的属性名和值作为键值存储到 map 中 @JsonAnySetter public void set(String key, Object value) { map.put(key, value); } |
@JsonAnyGetter | 应用于属性或方法,获取所有未序列化的属性 public Map<String, Object> any() { return map; } |
@JsonSetter | 应用于属性或方法,指定反序列化的字段名 @JsonSetter("_id") public String setId(String id) { return this.id=id; } |
@JsonGetter | 应用于方法或字段,指定序列化的字段名 @JsonGetter("_id") public String getId() { return id; } |
@JsonNaming | 类注解。序列化的时候该注解可将驼峰命名的字段名转换为下划线分隔的小写字母命名方式。反序列化的时候可以将下划线分隔的小写字母转换为驼峰命名的字段名。示例:@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class) |
@JsonRootName | 类注解。需开启mapper.enable(SerializationFeature.WRAP_ROOT_VALUE) ,用于序列化时输出带有根属性名称的JSON串,形式如 {"root_name":{"id":1,"name":"zhangsan"}} 。 |
@JsonAutoDetect | 指定属性(反)序列化范围 |
@JsonIgnoreType | 将忽略这个类型的(反)序列化 |
@JsonInclude | 对空值如何序列化 |
@JsonPropertyDescription | json的schema描述 |
@JsonUnwrapped | 将其属性上拉一个层级展开 |
@JsonView | 不同接口下返回不同的属性 eg:@JsonView的使用 |
@JacksonInject | json字段有一些缺少的属性,抓换成实体类的时候没有的属性将为null,但是我们在某些需求当中需要将为null的属性都设置为默认 |
@JsonEnumDefaultValue | 反序列化时未知时的枚举值 |
@JsonRawValue | 使用原始值,而不会进行转义 eg:"content":"Test content" ,而不是\"content\":\"Test content\" |
@JsonValue | 最多能用于类的一个属性(多个属性应用此注解将抛出异常),并将此属性上拉一个层级展开,其他字段不参与(反)序列化 |
@JsonKey | 最多能用于类的一个属性(多个属性应用此注解将抛出异常),这个类型对象作为Map数据结构的Key时,标记此注解的属性值将作为json字符串的字段名 |
@JsonFilter | 应用于属性, 过滤属性 eg:@JsonFilter("non-pwd") private char[] password = new char[]{'0', '\u0343', '&'}; mapper.setFilterProvider(new SimpleFilterProvider().addFilter("non-pwd", SimpleBeanPropertyFilter.serializeAllExcept("password"))); |
@JsonAlias | 应用于属性,反序列化时多个候选字段名能够映射到同一个属性上 |
@JsonMerge | 应用于属性,反序列化时集合类型属性时,将Json中的元素与字段中的默认元素融合 eg:@JsonMerge private List<String> hobbies = new ArrayList<>(Collections.singletonList("篮球")); |