乐趣区

关于云计算:jackson学习之一基本信息

欢送拜访我的 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

退出移动版