欢送拜访我的GitHub

https://github.com/zq2599/blog_demos

内容:所有原创文章分类汇总及配套源码,波及Java、Docker、Kubernetes、DevOPS等;

系列文章汇总

  • jackson学习之一:根本信息
  • jackson学习之二:jackson-core
  • jackson学习之三:罕用API操作
  • jackson学习之四:WRAP_ROOT_VALUE(root对象)
  • jackson学习之五:JsonInclude注解
  • jackson学习之六:罕用类注解
  • jackson学习之七:罕用Field注解
  • jackson学习之八:罕用办法注解
  • jackson学习之九:springboot整合(配置文件)
  • jackson学习之十(终篇):springboot整合(配置类)

对于jackson

本文是《jackson学习》系列的第一篇,先来一起理解jackson:

  1. jackson的github地址:https://github.com/FasterXML/...
  2. 依照官网所述,jackson是java技术栈内最好的JSON解析工具(best JSON parser for Java);
  3. 除了JSON解析,jackson还是个数据处理工具集:基于流的解析库和生成库、数据绑定、数据格式化模块(Avro、XML、Protobuf、YAML等);

版本信息

  1. jackson共有1.x和2.x两个版本系列,其中1.x<font color="red">已废除</font>不再有版本公布,2.x是沉闷版本;
  2. <font color="red">1.x和2.x不兼容</font>,如果您的代码曾经应用了1.x,当初想改用2.x,您就必须批改应用jackson的那局部代码;
  3. 尽管不兼容,然而1.x和2.x不抵触,您的我的项目能够在pom.xml中<font color="blue">同时依赖这两个版本</font>,假如您原有三处代码调用了1.x的API,当初能够把一处改成2.x的,另外两处维持不变,这个个性适宜将我的项目逐渐从1.x降级到2.x(This is by design and was chosen as the strategy to allow smoother migration from 1.x to 2.x.);
  4. 2.x系列版本中,有的版本已敞开(除非bug或者平安问题才会公布新的小版本),有的版本还处于沉闷状态,如下图,您能够在这个地址获取最新状况:https://github.com/FasterXML/...

三个外围模块

jackson有三个外围模块,如下,括号内是maven的artifactId:

  1. Streaming(jackson-core):低阶API库,提供流式解析工具JsonParser,流式生成工具JsonGenerator;
  2. Annotations(jackson-annotations):jackson注解;
  3. Databind (jackson-databind):基于java对象的序列化、反序列化能力,须要后面两个模块的反对能力实现;

低阶API库的作用

  1. 当咱们用jackson做JSON操作时,罕用的是Databind模块的ObjectMapper类,对处于外围地位的jackson-core反倒是很少间接用到,那么该模块有什么作用呢?
  2. 如下图,BeanSerializer是jackson-databind的性能类,其<font color="blue">serialize</font>办法负责将java对象转为JSON,办法中的解决逻辑就是调用JsonGenerator的API,而JsonGenerator就是jackson-core中负责序列化的次要性能类:

  1. 可见Databind模块的ObjectMapper类提供给咱们的API,其底层操作是基于jackson-core实现的;

至此,咱们对jackson已有了根本理解,接下来的文章会开始一系列的实战,通过实战来把握和了解这套优良的工具;

你不孤独,欣宸原创一路相伴

  1. Java系列
  2. Spring系列
  3. Docker系列
  4. kubernetes系列
  5. 数据库+中间件系列
  6. DevOps系列

欢送关注公众号:程序员欣宸

微信搜寻「程序员欣宸」,我是欣宸,期待与您一起畅游Java世界...
https://github.com/zq2599/blog_demos