Jackson / fastjson:JsonProperty|JSONField|JsonIgnore|JsonUnwrapped

常用注解

三个常用包下载地址: https://mvnrepository.com/artifact/com.fasterxml.jackson.core

Jackson之注解大全

@JSONField和@JsonProperty注解的区别

区别

1.框架不同

@jsonProperty是 Jackson的包,而@jsonfield是fastjson的包

2.用法不同

(1)bean转换成Json字符串:

@JsonProperty:ObjectMapper().writeValueAsString(Object value)

@JSONField:ObjectMapper().readValue(String content, Class valueType)

(2)Json字符串转化为bean:

@JsonProperty:ObjectMapper().readValue(String content, Class valueType)

@JSONField:JSONObject.parseObject(String content, Class valueType)

@JSONField这个注解可以用于get、set以及属性上面

(3)@JSONproperty这个注解用于属性上面

如把trueName属性序列化为name,可以在属性名上面增加@JsonProperty(value=“name”)。

(4)jackson的@JsonIgnore使用

作用:在json序列化时将java bean中的一些属性忽略掉,序列化和反序列化都受影响。

使用方法:一般标记在属性或者方法上,返回的json数据即不包含该属性。

如何利用jackson,把对象中值为null或“”(空字符串)的属性不输出出来

1.实体上

@JsonInclude(Include.NON_NULL) 

//将该标记放在属性上,如果该属性为NULL则不参与序列化

//如果放在类上边,那对这个类的全部属性起作用

//Include.Include.ALWAYS 默认

//Include.NON_DEFAULT 属性为默认值不序列化

//Include.NON_EMPTY 属性为 空(“”) 或者为 NULL 都不序列化

//Include.NON_NULL 属性为NULL 不序列化

2.代码上

ObjectMapper mapper = new ObjectMapper();

mapper.setSerializationInclusion(Include.NON_NULL);  

//通过该方法对mapper对象进行设置,所有序列化的对象都将按改规则进行系列化

//Include.Include.ALWAYS 默认

//Include.NON_DEFAULT 属性为默认值不序列化

//Include.NON_EMPTY 属性为 空(“”) 或者为 NULL 都不序列化

Jackson之ObjectMapper对象的使用   Jackson 使用篇

fastjson之ObjectMapper对象的使用     Fastjson 汇总篇

jackson的ObjectMapper实例化是一个性能瓶颈,如果提前准备好实例会比fastJson要快一倍左右。  fastJson与jackson性能对比

@JsonUnwrapped

返回目录

该注解指定值在序列化和反序列化时, 去除对应属性的外包装(根节点)

Unsupported major.minor version 51.0解决办法:

Version和JDK版本的对应关系:

52.0 -> 8.0

51.0 -> 7.0

50.0 -> 1.6

49.0 -> 1.5

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
芊芊千岛的头像 - 宋马
评论 抢沙发

请登录后发表评论

    暂无评论内容