Java生态圈中有很多处理JSON和XML格式化的类库,Jackson是其中比较著名的一个。虽然JDK自带了XML处理类库,但是相对来说比较低级

本文将介绍的Jackson常用注解:精简概述

Jackson的依赖

  1. <dependency>
  2. <groupId>com.fasterxml.jackson.core</groupId>
  3. <artifactId>jackson-databind</artifactId>
  4. <version>2.5.</version>
  5. </dependency>

1.@JsonProperty:此注解作用于属性上,作用是把该属性的名称序列化成另一个自己想要的名称

对属性名进行重命名,在java里我们墨守规定驼峰命名,但是在一些特殊的场合下,比如数据库是下划线等,再此我们就可以进行映射

对属性名称重命名,比如在很多场景下Java对象的属性是按照规范的驼峰书写,但在数据库设计时使用的是下划线连接方式,此处在进行映射的时候

  1. public class CatNode {
  2. //@JsonProperty 指定将java对象转化为json格式的时候,对应的key
  3. @JsonProperty(value = "u")
  4. private String url;
  5. @JsonProperty(value = "n")
  6. private String name;
  7. @JsonProperty(value = "i")
  8. private List<?> list;
  9.  
  10. public String getUrl() {
  11. return url;
  12. }
  13.  
  14. public void setUrl(String url) {
  15. this.url = url;
  16. }
  17.  
  18. public String getName() {
  19. return name;
  20. }
  21.  
  22. public void setName(String name) {
  23. this.name = name;
  24. }
  25.  
  26. public List<?> getList() {
  27. return list;
  28. }
  29.  
  30. public void setList(List<?> list) {
  31. this.list = list;
  32. }
  33. }

2.@JsonIgnore注解用于属性或者方法上,用来完全忽略被注释的字段和方法对应的属性,即便这个还有其它注解,

一般标记在属性或者方法上,返回的json数据不包含被该注解引用的属性或者方法

例如下面代码中:我们不想让a属性被转换成json格式数据,即这个类jishi转换成json格式,也不会包含该属性字段。

  1. public class Test{
  2.  
  3. @JsonIgnore
  4. private String a;
  5.  
  6. private String b;
  7.  
  8. }

3.@JsonFormat可以帮助我们完成格式转换,

例如我们在进行json转换的时候包含日期,通常不经过处理的话会是一个不是很友好的格式,那么我们就可以通过@JsonFormat来进行指定格式

例如:

  1. @JsonFormat(timezone="GTM+8",pattern="yyyy-MM-dd HH:mm:ss")
  2. private Date createDate;

4.@JsonIgnoreProperties可以帮我们忽略类中不存在的字段

例如:@JsonIgnoreProperties(ignoreUnknown = true)

还可以指定忽略类中多个字段在类被转成json的格式忽略掉

  1. @JsonIngoreProperties(value={"name","sex"})
  2. public class Test{
  3. private String name;
  4. private String pwd;
  5. private String sex;
  6. }

@JsonIgnoreProperties和@JsonIgnore我们日常使用中最大的区别就是前者修饰类的,后者多用于修饰类中的属性

具体可以查看官方文档:

https://fasterxml.github.io/jackson-annotations/javadoc/2.6/com/fasterxml/jackson/annotation/JsonIgnoreProperties.html

Jackson中@JsonProperty等常用注解的更多相关文章

  1. jackson中@JsonProperty、@JsonIgnore等常用注解总结

    本文为博主原创,未经允许不得转载: 最近用的比较多,把json相关的知识点都总结一下,jackjson的注解使用比较频繁, jackson的maven依赖 <dependency> < ...

  2. spring boot JPA中实体类常用注解

    spring boot jpa中的注解很多,参数也比较多.没必要全部记住,但是经常查看官方文档也比较麻烦,记录一下一些常用的注解.通过一些具体的例子来帮助记忆. @Entity @Table(name ...

  3. 用Jackson进行Json序列化时的常用注解

    Jackson时spring boot默认使用的json格式化的包,它的几个常用注解: @JsonIgnore 用在属性上面,在序列化和反序列化时都自动忽略掉该属性 @JsonProperty(&qu ...

  4. jackson学习之七:常用Field注解

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  5. Jackson /常用注解/ annotation(转)

    1.@JsonAutoDetect 自动检测,(作用在类上)来开启/禁止自动检测. fieldVisibility:字段的可见级别 ANY:任何级别的字段都可以自动识别 NONE:所有字段都不可以自动 ...

  6. spring注解开发中常用注解以及简单配置

    一.spring注解开发中常用注解以及简单配置 1.为什么要用注解开发:spring的核心是Ioc容器和Aop,对于传统的Ioc编程来说我们需要在spring的配置文件中邪大量的bean来向sprin ...

  7. SpringBoot 中常用注解

    本篇博文将介绍几种SpringBoot 中常用注解 其中,各注解的作用为: @PathVaribale 获取url中的数据 @RequestParam 获取请求参数的值 @GetMapping 组合注 ...

  8. SpringBoot 中常用注解@PathVaribale/@RequestParam/@GetMapping介绍

    SpringBoot 中常用注解@PathVaribale/@RequestParam/@GetMapping介绍 本篇博文将介绍几种如何处理url中的参数的注解@PathVaribale/@Requ ...

  9. SpringBoot中常用注解@Controller/@RestController/@RequestMapping的区别

    @Controller 处理http请求 @Controller //@ResponseBody public class HelloController { @RequestMapping(valu ...

随机推荐

  1. Flutter开发环境配置(MAC版)

    一.配置镜像 打开命令终端,输入命令open ~/.bash_profile,打开bash_profile文本,添加镜像路径并保存 export PUB_HOSTED_URL=https://pub. ...

  2. Java 中 Set、List 和 Map 的遍历

    java集合类的使用可以说是无处不在,总的我们可以将之分为三大块,分别是从Collection接口延伸出的List.Set和以键值对形式作存储的Map类型集合. package tup.lucene. ...

  3. Node.js之模块机制

    > 文章原创于公众号:程序猿周先森.本平台不定时更新,喜欢我的文章,欢迎关注我的微信公众号. ![file](https://img2018.cnblogs.com/blog/830272/20 ...

  4. 如何使用rsync备份

    已知3台服务器主机名分别为web01.backup .nfs主机信息见下表: 角色 外网IP(NAT) 内网IP(LAN) 主机名 WEB eth0:10.0.0.7 eth1:172.16.1.7 ...

  5. FEDay会后-Serverless与云开发,可能是前端的下一站

    进化本身是生物体与环境之间持续不断的信息交换的具体表现. -- 摘自<信息简史> 很荣幸在9月21号成都举办的第五届FEDay上作为讲师为大家分享腾讯云在近两年推出的云开发相关的技术和知识 ...

  6. git报错,远程克隆和更新不下来解决方法

    报错: error: RPC failed; curl 18 transfer closed with outstanding read data remainingfatal: The remote ...

  7. Hadoop 之 Hadoop2.0

    1.Hadoop2.0与1.0 答:Hadoop2.0之后的版本移除了原有的JobTracker和TaskTracker,改由Yarn平台的ResourceManager负责集群中所有资源的管理和分配 ...

  8. Linux入门基础之 下

    八.Linux 管道.重定向及文本处理 8.1.Linux 多命令协作:管道及重定向 8.1.1 开源文化 开源文化的核心理念之一就是不要重复发明轮子,很多的开源软件都是现有软件.代码.功能的重新组合 ...

  9. 【django】ajax,上传文件,图片预览

    1.ajax 概述: AJAX = 异步 JavaScript 和 XML. AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味 ...

  10. 使用webgl(three.js)搭建3D智慧园区、3D大屏,3D楼宇,智慧灯杆三维展示,3D灯杆,web版3D,bim管理系统——第六课

    前言: 今年是建国70周年,爱国热情异常的高涨,为自己身在如此安全.蓬勃发展的国家深感自豪. 我们公司楼下为庆祝国庆,拉了这样的标语,每个人做好一件事,就组成了我们强大的祖国. 看到这句话,深有感触, ...