本文概览:介绍Jackson常用的配置和注解。
1 常用配置
1.1 进行配置
通过configure函数来配置属性
1 2 3 4 5 |
ObjectMapper mapper = new ObjectMapper(); mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); mapper.configure(SerializationFeature.INDENT_OUTPUT, false); mapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_CONTROL_CHARS, true); |
用到Feature主要有四种:
- DeserializationFeature
- SerializationFeature
- JsonParser.Feature
- JsonGenerator.Feature
1.2 属性介绍
1.2.1 反序列化 DeserializationFeature
反序列化就是指将json转成Object的过程,涉及到属性如下:
属性 | 解释 |
FAIL_ON_UNKNOWN_PROPERTIES |
设置为false,表示:json中字段多了,不会影响json转Object |
ACCEPT_EMPTY_STRING_AS_NULL_OBJECT |
设置为ture时,可以将一个空字符串“”转成一个null。如{“student”:””},其中“student”在反序列化时对应类Student,此时Student的值会被设置为null。 |
1.2.2 序列化 SerializationFeature
序列化就是指将Ojbect转成Json的过程,涉及到属性如下:
属性 | 解释 |
WRITE_NULL_MAP_VALUES | 如果为false,则表示跳过null的字段 |
2 注解
在类的成员变量上使用,常用的注解如下:
注解 | 解释 |
@JsonIgnore | 此注解用于属性上,作用是进行JSON操作时忽略该属性 |
@JsonProperty | 将类成员的名称序列化时,变为另外一个名称。如@JsonProperty(“bank_code”)。 |
@JsonInclude | @JsonInclude(JsonInclude.Include.NON_NULL)表示跳过值为null的类成员 |
@JsonFormat | 对date类型进行格式化,@JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”) |
(待完善)