jackson
一笑而过者也
爱好java,分布式开发
展开
-
Jackson注解 @JsonCreator
当json在反序列化时,默认选择类的无参构造函数创建类对象,当没有无参构造函数时会报错,@JsonCreator作用就是指定反序列化时用的无参构造函数。构造方法的参数前面需要加上@JsonProperty,否则会报错。 @JsonCreator public Person(@JsonProperty("id") String id) { this.id = id...原创 2018-10-11 21:37:05 · 23120 阅读 · 3 评论 -
Jackson注解 @JsonIgnore
@JsonIgnore的作用是忽略这个属性不被序列化或者反序列化,不管是作用于get方法,set方法还是field属性字段,都是一样的。 @JsonIgnore private Date birthday; @Test public void testJson7() throws Exception{ Person person = new ...原创 2018-10-10 23:11:06 · 1886 阅读 · 0 评论 -
Jackson注解 @JsonValue
@JsonValue 可以用在get方法或者属性字段上,一个类只能用一个,当加上@JsonValue注解是,序列化是只返回这一个字段的值。例如,实体类中age属性加上注解 @JsonValue private Integer age;序列化这个类是,只返回了age的值...原创 2018-10-10 22:55:03 · 18185 阅读 · 5 评论 -
Jackson注解 @JsonProperty
@JsonProperty 注解用于序列化或者反序列化时,映射的属性的名字,可以放在get方法,set方法,还有属性上,都可以。 @JsonProperty(value = "fullName") private String name;序列化后会是这样{"fullName":"xuhaixing"}@JsonProperty还有一个属性access,用来控...原创 2018-10-10 22:48:25 · 10269 阅读 · 2 评论 -
Jackson注解 @JsonAnySetter @JsonAnyGetter
@JsonAnySetter @JsonAnyGetter,主要用来获取反序列时未匹配上的字段,作用在set和get方法上用法如下:package com.xhx.json.entity3;import com.fasterxml.jackson.annotation.JsonAnyGetter;import com.fasterxml.jackson.annotation.Jso...原创 2018-10-11 22:54:16 · 10289 阅读 · 0 评论 -
Jackson注解 @JsonTypeInfo 解决多态反序列化问题
@JsonTypeInfo 主要是用来解决反序列化时,多态的问题。@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS,include = JsonTypeInfo.As.PROPERTY,property = "@Clazz")//@JsonSubTypes({@JsonSubTypes.Type(value = Lion.class,name = "lio...原创 2018-10-11 22:45:26 · 17118 阅读 · 0 评论 -
自定义Jackson序列化 @JsonSerialize
自定义json序列化需要实现StdSerializer<T>或者JsonSerializer<T>。我要序列化House这个类,加上注解,指定用于序列化的类package com.xhx.json.entity;import com.fasterxml.jackson.annotation.JsonFormat;import com.fasterxml.ja...原创 2018-10-11 22:24:24 · 9357 阅读 · 0 评论 -
Jackson注解 @JsonFormat
@JsonFormat 用来表示json序列化的一种格式或者类型,主要有下面几个常用的属性 @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy年MM月dd日 HH:mm:ss", timezone = "GMT+8") private Date date; @JsonFormat(shape = J...原创 2018-10-11 22:11:31 · 22364 阅读 · 3 评论 -
Jackson注解 @JsonRootName
@JsonRootName的作用是定义一个根key,看例子:@JsonRootName(value = "root")public class User { private String id;...使用时必须给ObjectMapper对象做如下设置mapper.enable(SerializationFeature.WRAP_ROOT_VALUE);序列化时会有...原创 2018-10-11 21:49:12 · 7052 阅读 · 0 评论 -
Jackson注解 @JsonInclude
@JsonInclude是一种json序列化规则,有下面这些值,某些值的具体作用我也没测过,有需要的大家可以自己研究一下。 /** * Enumeration used with {@link JsonInclude} * to define which properties * of Java Beans are to be included in se...原创 2018-10-11 21:42:27 · 3466 阅读 · 0 评论 -
Jackson注解 @JsonIgnoreProperties
@JsonIgnoreProperties 可以设置一批忽略序列化或者反序列化的属性。@JsonIgnoreProperties(value = {"address"})public class Person { private String id; private String name; private Date birthday; private St...原创 2018-10-10 23:18:00 · 3174 阅读 · 0 评论