Jackson常用注解介绍

转载 2016年06月01日 17:36:49
   一般情况下使用JSON只使用了java对象与字符串的转换,但是,开发APP时候,我们经常使用实体类来做转换;这样,就需要用到注解;

    Jackson默认是针对get方法来生成JSON字符串的,可以使用注解来做一些特殊用途;常见的使用如下:

1 排除属性
@JsonIgnore,一般标记在属性或方法上;作用于序列化与反序列化;
@JsonIgnoreProperties,如果是代理类,由于无法标记在属性或方法上,所以,可以标记在类声明上;也作用于反序列化时的字段解析;

2 属性别名
@JsonProperty,序列化/反序列化都有效;

3 属性排序
@JsonPropertyOrder,注释在类声明中;

4 属性格式转换
使用自定义序列化/反序列化来处理;
@JsonSerialize,序列化;
@JsonDeserialize,反序列化;

注意:在使用hibernate的时候,查询数据库后产生的实体类是个代理类,这时候转换JSON会报错;
解决方法有两种:
1)设置FAIL_ON_EMPTY_BEANS属性,告诉Jackson空对象不要抛异常;
mapper.disable(SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS);
2)使用@JsonIgnoreProperties注解
在实体类声明处加上@JsonIgnoreProperties(value = {"hibernateLazyInitializer", "handler"})注解;
建议使用@JsonIgnoreProperties注解,这样生成的JSON中不会产生多余的字段;

5 父/子关联
@JsonManagedReference,放在父亲类中;
@JsonBackReference,放在孩子类中;

6 去掉包装
@JsonUnwrapped,意思如下:
Ability to map JSON like
{
"name" : "home",
"latitude" : 127,
"longitude" : 345
}
to classes defined as:
class Place {
public String name;

@JsonUnwrapped
public Location location;
}

class Location {
public int latitude, longitude;
}

参考:
http://wiki.fasterxml.com/JacksonAnnotations
http://www.cowtowncoder.com/blog/archives/2011/10/entry_463.html
http://www.07net01.com/linux/Jacksonzhujiexuexicankao_44238_1356358422.html

jackson annotations注解详解

jackson 1.x和2.x版本的注解是放置在不同的包下的 1
  • sdyy321
  • sdyy321
  • 2014年11月18日 18:36
  • 123106

Jackson常用注解介绍

1 排除属性 @JsonIgnore,一般标记在属性或方法上;作用于序列化与反序列化; @JsonIgnoreProperties,如果是代理类,由于无法标记在属性或方法上,所以,可以标记在类声明...
  • u013772876
  • u013772876
  • 2017年04月21日 10:42
  • 320

jackson注解

http://blog.csdn.net/nomousewch/article/details/8949899 http://wong-john.iteye.com/blog/1753402 http...
  • LJHABC1982
  • LJHABC1982
  • 2013年12月25日 13:09
  • 13200

jackson annotations注解详解

(1)初级 我们从几个简单的使用场景开始:重命名属性,忽略属性,以及修改属性所使用的类型。 注意:下面的例子仅仅显示了成员属性(field properties),注解同样也可以用在成员方法(ge...
  • wsldc
  • wsldc
  • 2016年06月07日 15:10
  • 125

Json解析工具Jackson(使用注解)

接上一篇文章Json解析工具Jackson(简单应用),jackson在实际应用中给我们提供了一系列注解,提高了开发的灵活性,下面介绍一下最常用的一些注解 @JsonIgnoreProperti...
  • jinwufeiyang
  • jinwufeiyang
  • 2016年10月12日 11:45
  • 1487

Jackson /常用注解/ annotation

1、@JsonAutoDetect 自动检测,(作用在类上)来开启/禁止自动检测。 fieldVisibility:字段的可见级别    ANY:任何级别的字段都可以自动识别   NONE:所...
  • u010457406
  • u010457406
  • 2016年03月18日 11:10
  • 5215

jackson annotations注解详解

转自;  http://blog.csdn.net/sdyy321/article/details/40298081#comments 官方WIKI:https://github.c...
  • Manketon
  • Manketon
  • 2015年03月30日 14:41
  • 1651

jackson annotations注解详解

官方WIKI:https://github.com/FasterXML/jackson-databind/wiki jackson 1.x和2.x版本的注解是放置在不同的包下的 1.x是在jack...
  • xiaoyu411502
  • xiaoyu411502
  • 2015年04月12日 00:11
  • 1285

Json解析工具Jackson(使用注解)

接上一篇文章Json解析工具Jackson(简单应用),jackson在实际应用中给我们提供了一系列注解,提高了开发的灵活性,下面介绍一下最常用的一些注解 @JsonIgnoreProperties...
  • nomousewch
  • nomousewch
  • 2013年05月21日 16:44
  • 71095

Jackson使用(三) ----使用注解

jackson在实际应用中给我们提供了一系列注解,提高了开发的灵活性,下面介绍一下最常用的一些注解   1.@JsonIgnoreProperties           此注解是类注解,作用是jso...
  • Mooner_guo
  • Mooner_guo
  • 2014年12月22日 15:17
  • 2020
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Jackson常用注解介绍
举报原因:
原因补充:

(最多只允许输入30个字)