前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >jackson学习之一:基本信息

jackson学习之一:基本信息

作者头像
程序员欣宸
发布2022-05-06 15:13:29
4180
发布2022-05-06 15:13:29
举报
文章被收录于专栏:实战docker

欢迎访问我的GitHub

这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos

系列文章汇总

关于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中负责序列化的主要功能类:
在这里插入图片描述
在这里插入图片描述
  1. 可见Databind模块的ObjectMapper类提供给我们的API,其底层操作是基于jackson-core实现的; 至此,我们对jackson已有了基本了解,接下来的文章会开始一系列的实战,通过实战来掌握和理解这套优秀的工具
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-09-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 欢迎访问我的GitHub
  • 系列文章汇总
  • 关于jackson
  • 版本信息
  • 三个核心模块
  • 低阶API库的作用
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档