+-
jackson学习之一:基本信息
首页 专栏 云计算 文章详情
0

jackson学习之一:基本信息

程序员欣宸 发布于 1 月 25 日

欢迎访问我的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:

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

版本信息

jackson共有1.x和2.x两个版本系列,其中1.x<font color="red">已废弃</font>不再有版本发布,2.x是活跃版本; <font color="red">1.x和2.x不兼容</font>,如果您的代码已经使用了1.x,现在想改用2.x,您就必须修改使用jackson的那部分代码; 虽然不兼容,但是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.); 2.x系列版本中,有的版本已关闭(除非bug或者安全问题才会发布新的小版本),有的版本还处于活跃状态,如下图,您可以在这个地址获取最新情况:https://github.com/FasterXML/...

三个核心模块

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

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

低阶API库的作用

当我们用jackson做JSON操作时,常用的是Databind模块的ObjectMapper类,对处于核心位置的jackson-core反倒是很少直接用到,那么该模块有什么作用呢? 如下图,BeanSerializer是jackson-databind的功能类,其<font color="blue">serialize</font>方法负责将java对象转为JSON,方法中的处理逻辑就是调用JsonGenerator的API,而JsonGenerator就是jackson-core中负责序列化的主要功能类:

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

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

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

Java系列 Spring系列 Docker系列 kubernetes系列 数据库+中间件系列 DevOps系列

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

微信搜索「程序员欣宸」,我是欣宸,期待与您一同畅游Java世界...
https://github.com/zq2599/blog_demos
云计算
阅读 23 发布于 1 月 25 日
收藏
分享
本作品系原创, 采用《署名-非商业性使用-禁止演绎 4.0 国际》许可协议
avatar
程序员欣宸

热爱Java和Docker

75 声望
6 粉丝
关注作者
0 条评论
得票 时间
提交评论
avatar
程序员欣宸

热爱Java和Docker

75 声望
6 粉丝
关注作者
宣传栏

欢迎访问我的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:

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

版本信息

jackson共有1.x和2.x两个版本系列,其中1.x<font color="red">已废弃</font>不再有版本发布,2.x是活跃版本; <font color="red">1.x和2.x不兼容</font>,如果您的代码已经使用了1.x,现在想改用2.x,您就必须修改使用jackson的那部分代码; 虽然不兼容,但是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.); 2.x系列版本中,有的版本已关闭(除非bug或者安全问题才会发布新的小版本),有的版本还处于活跃状态,如下图,您可以在这个地址获取最新情况:https://github.com/FasterXML/...

三个核心模块

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

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

低阶API库的作用

当我们用jackson做JSON操作时,常用的是Databind模块的ObjectMapper类,对处于核心位置的jackson-core反倒是很少直接用到,那么该模块有什么作用呢? 如下图,BeanSerializer是jackson-databind的功能类,其<font color="blue">serialize</font>方法负责将java对象转为JSON,方法中的处理逻辑就是调用JsonGenerator的API,而JsonGenerator就是jackson-core中负责序列化的主要功能类:

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

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

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

Java系列 Spring系列 Docker系列 kubernetes系列 数据库+中间件系列 DevOps系列

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

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