jackson学习之一:基本信息

简介: 对jackson有个基本了解

欢迎访问我的GitHub

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

系列文章汇总

  • 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
  • 按照官网所述,jackson是java技术栈内最好的JSON解析工具(best JSON parser for Java);
  • 除了JSON解析,jackson还是个数据处理工具集:基于流的解析库和生成库、数据绑定、数据格式化模块(Avro、XML、Protobuf、YAML等);

    版本信息

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

    三个核心模块

    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的功能类,其serialize方法负责将java对象转为JSON,方法中的处理逻辑就是调用JsonGenerator的API,而JsonGenerator就是jackson-core中负责序列化的主要功能类:
    在这里插入图片描述
  • 可见Databind模块的ObjectMapper类提供给我们的API,其底层操作是基于jackson-core实现的;
    至此,我们对jackson已有了基本了解,接下来的文章会开始一系列的实战,通过实战来掌握和理解这套优秀的工具;

欢迎关注阿里云开发者社区:程序员欣宸

学习路上,你不孤单,欣宸原创一路相伴...

相关文章
|
5月前
|
人工智能 安全 API
养虾效率翻倍!OpenClaw核心Skill清单(阿里云/本地部署+免费API配置+10个必装技能+避坑指南)
“部署好OpenClaw,却只能当普通聊天工具?问最新资讯说‘知识过期’,装第三方技能怕泄露数据,想扩展功能又找不到合适的工具”——这是2026年无数“养虾人”的共同困境。OpenClaw的真正价值不在于框架本身,而在于技能(Skill)生态的灵活组合。当前技能市场鱼龙混杂,数百个技能中真正能日常高频使用的寥寥无几,盲目安装不仅占用资源,还可能带来安全风险。
1006 7
|
安全 虚拟化
在数字化时代,网络项目的重要性日益凸显。本文从前期准备、方案内容和注意事项三个方面,详细解析了如何撰写一个优质高效的网络项目实施方案,帮助企业和用户实现更好的体验和竞争力
在数字化时代,网络项目的重要性日益凸显。本文从前期准备、方案内容和注意事项三个方面,详细解析了如何撰写一个优质高效的网络项目实施方案,帮助企业和用户实现更好的体验和竞争力。通过具体案例,展示了方案的制定和实施过程,强调了目标明确、技术先进、计划周密、风险可控和预算合理的重要性。
601 5
|
人工智能 编解码 芯片
告别低效沟通|让技术提问不再头疼-这套高效AI提问模板来帮你
不会向ai提问,不知道怎么提问的 可以看看
21475 1
告别低效沟通|让技术提问不再头疼-这套高效AI提问模板来帮你
|
Windows
windows server 2016评估版过期怎么激活
windows server 2016评估版过期怎么激活
1630 0
windows server 2016评估版过期怎么激活
|
9月前
|
关系型数据库 分布式数据库 数据库
全国普通高校学科竞赛排行榜入选赛事:第2届PolarDB数据库创新设计赛开放报名!
「2025全国大学生计算机系统能力大赛——第2届PolarDB数据库创新设计赛」已启动报名,面向全国高校全日制本专科及研究生开放。赛事聚焦PolarDB-PG数据库向量计算优化,旨在提升学生系统设计、数据库调优与AI融合创新能力。比赛设初赛与决赛,总奖金25万元,由全国高等学校计算机教育研究会、浙江大学、阿里云等联合主办,是培养高端数据库人才的重要平台。
519 0
全国普通高校学科竞赛排行榜入选赛事:第2届PolarDB数据库创新设计赛开放报名!
|
监控 Java Spring
SpringBoot:SpringBoot通过注解监测Controller接口
本文详细介绍了如何通过Spring Boot注解监测Controller接口,包括自定义注解、AOP切面的创建和使用以及具体的示例代码。通过这种方式,可以方便地在Controller方法执行前后添加日志记录、性能监控和异常处理逻辑,而无需修改方法本身的代码。这种方法不仅提高了代码的可维护性,还增强了系统的监控能力。希望本文能帮助您更好地理解和应用Spring Boot中的注解监测技术。
625 16
|
分布式计算 关系型数据库 MySQL
Flink CDC 3.3.0 发布公告
Flink CDC 3.3.0 发布公告
685 14
|
人工智能 安全 Java
AI 原生应用开发实战营
内容主题是 AI 原生应用的趋势与实践,由主要负责阿里云上消息产品线的技术与业务相关事宜的阿里云消息团队负责人、Apache Rocket MQ 社区的联合创始人隆基(花名林清山)分享。主要分为三部分: 1. AI 原生应用趋势和实践 2. AIGC 趋势下的智能编码探索与企业侧实践 3. 掌控你的 Java 智能体应用
1537 0
|
存储 NoSQL Redis
2)Redis 的键值对长什么样子,又是怎么存储的?
2)Redis 的键值对长什么样子,又是怎么存储的?
471 0
|
消息中间件 存储 运维
轻量级分布式事务实现:掌握最大努力通知方案
本文介绍了分布式事务的重要概念,特别是最大努力通知方案。最大努力通知是一种基于消息通知的分布式事务处理方式,通过异步通知确保最终一致性。方案包括事务消息发送、消息中间件持久化和最大努力通知三个步骤。虽然它实现简单、性能高且灵活,但可能无法保证强一致性,且存在重试和人工干预的成本。文中还提供了一个电商订单与库存系统同步的案例,并分析了该方案的优缺点。
637 1