Fastxml.jackson提供了JsonValue和JsonCreator注解用于序列化和反序列化时使用.
@JsonValue注解用户get方法或者属性字段上,一个类只能用一个,加上这个注解时,序列化就会只返回这一个字段的值.
比如一个枚举类的get方法上加上该注解:
那么在序列化这个枚举类时,输出的对象就是:枚举类中的某个枚举的值,而不是这个枚举
如:
如果不加这个注解且没有使用@JsonFormat注解时,经过序列化之后,输出的是这个枚举,如图:
但是在枚举类上使用@JsonFormat注解,并加上类型选择Object,则序列化后会是对应枚举对象.
反序列化:将json字符串反序列化为对应的对象.
反序列化的过程:首先会调用反序列化的目标类的无参构造函数,生成一个对象.
其次,在调用类的成员变量的set方法,为该对象的每一个成员变量赋值.
@JsonCreator注解的作用是可以自定义反序列化的过程,这样就可以自定义反序列化函数.该注解可以用在哪些地方?
- @JsonCreator注解用在构造方法上
- @JsonCreator注解用在工厂的静态方法上
使用这个注解之后,进行反序列化时,默认使用无参构造函数及set方法进行反序列化的过程机会失效.
例如:枚举类中的静态方法使用该注解,在反序列化时,按照静态方法的逻辑进行反序列化.
版权声明:本文为u012913466原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。