欢迎访问我的GitHub

https://github.com/zq2599/blog_demos

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

系列文章汇总

关于jackson

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

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

版本信息

  1. jackson共有1.x和2.x两个版本系列,其中1.x已废弃不再有版本发布,2.x是活跃版本;
  2. 1.x和2.x不兼容,如果您的代码已经使用了1.x,现在想改用2.x,您就必须修改使用jackson的那部分代码;
  3. 虽然不兼容,但是1.x和2.x不冲突,您的项目可以在pom.xml中同时依赖这两个版本,假设您原有三处代码调用了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/wiki/Jackson-Releases

三个核心模块

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的功能类,其serialize方法负责将java对象转为JSON,方法中的处理逻辑就是调用JsonGenerator的API,而JsonGenerator就是jackson-core中负责序列化的主要功能类:



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

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

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

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

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

微信搜索「程序员欣宸」,我是欣宸,期待与您一同畅游Java世界...

https://github.com/zq2599/blog_demos

jackson学习之一:基本信息的更多相关文章

  1. jackson学习之二:jackson-core

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

  2. jackson学习之三:常用API操作

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

  3. jackson学习之四:WRAP_ROOT_VALUE(root对象)

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

  4. jackson学习之五:JsonInclude注解

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

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

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

  6. jackson学习之八:常用方法注解

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

  7. jackson学习之九:springboot整合(配置文件)

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 系列文章汇总 jackson学习之一:基本信息 jac ...

  8. jackson学习之十(终篇):springboot整合(配置类)

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

  9. jackson学习----解析豆瓣的图书信息

      异常一. org.codehaus.jackson.map.JsonMappingException: No suitable constructor found for type [simple ...

随机推荐

  1. VMware虚拟机安装Win7填坑

    今天本想赶紧安装Win7虚拟机做个实验,结果鼓捣了一天,写个文章填下坑. 一.Win7镜像文件下载 下载ISO镜像地址:http://msdn.itellyou.cn/ 二.安装tools VMwar ...

  2. 探究 | App Startup真的能减少启动耗时吗

    前言 之前我们说了启动优化的一些常用方法,但是有的小伙伴就很不屑了: "这些方法很久之前就知道了,不知道说点新东西?比如App Startup?能对启动优化有帮助吗?" ok,既然 ...

  3. Hive中的UDF详解

    hive作为一个sql查询引擎,自带了一些基本的函数,比如count(计数),sum(求和),有时候这些基本函数满足不了我们的需求,这时候就要写hive hdf(user defined funati ...

  4. .NET生态系统掠影

    如果你是一名开发人员,想要进入到.NET的世界,你需要知道都有哪些可能.由于.NET Framework是..NET生态系统中最流行的技术,你可以用它来构建各种各样的应用程序,但是最近,出现了一些新的 ...

  5. 干货满满:python实现二维图制作

    python全代码如下 import re import csv import matplotlib.pyplot as plt x=[] y=[] m=eval(input()) #输入折线条数 f ...

  6. 写一个简单的HTML留言板

    最近有点懒,没码什么字,防止遗忘,从头开始码,写一个简单的HTML留言板.包含两个文件,book.html还有style.css,放在同一目录下. book.html 1 <!DOCTYPE h ...

  7. vscode常用快捷键和插件

    常用快捷键 快捷键 用途 ctrl+· 打开终端 shift+alt+A 块注释 ctrl+/ 行注释 ctrl+shift+F 文件夹查找 ctrl+enter 下方插入一行 ctrl+shift+ ...

  8. Xtrabackup备份与恢复

    一.Xtrabackup介绍 MySQL冷备.mysqldump.MySQL热拷贝都无法实现对数据库进行增量备份.在实际生产环境中增量备份是非常实用的,如果数据大于50G或100G,存储空间足够的情况 ...

  9. OJDBC版本区别

    classes12.jar,ojdbc14.jar,ojdbc5.jar和ojdbc6.jar,ojdbc7.jar的区别与差异 [转 原文:https://yq.aliyun.com/wenji/2 ...

  10. WIN10系统下静态编译Qt4.8.7

    qt-everywhere-opensource-src-4.8.7.tar.gz  http://download.qt.io/archive/qt/4.8/4.8.7/qt-everywhere- ...