Apache Johnzon 2.2.0 介绍与选型指南

Apache Johnzon 2.2.0 的信息基准、模块架构、功能特性、官方快速上手与适用限制,及对 Jackson、Gson、JSON-java 的量化选型对比。

Apache JohnzonApache Johnzon2026/10/18

Apache Johnzon 2.2.0 介绍与选型指南

一、信息基准

1.1 查询说明

本文为 Apache Johnzon 的认知篇文档,仅基于官方公开资料进行整理与溯源,不涉及本地安装与实测。所有版本信息与对比数据的查询日期均为 2026-10-18。

1.2 官方来源清单

来源地址用途
Johnzon 官网https://johnzon.apache.org/项目主页、规范符合度与 Mapper 示例
官网下载页https://johnzon.apache.org/download.html版本说明与命名空间变更说明
官方下载目录https://downloads.apache.org/johnzon/发布物核实
GitHub Releaseshttps://github.com/apache/johnzon/releases发布记录
Maven Central 元数据https://repo1.maven.org/maven2/org/apache/johnzon/johnzon-core/maven-metadata.xml版本交叉取证

1.3 版本依据

取证渠道结果
GitHub Releases Atom feed最新条目 v2.2.0(条目时间 2026-08-05);v1.3.1 条目更新于 2026-08-14,为 1.x 维护线
downloads.apache.org/johnzon/提供 johnzon-2.2.0 与 johnzon-1.3.1 两个发布目录
Maven Central(johnzon-core 元数据)latest/release 均为 2.2.0
结论截至 2026-10-18,官方最新稳定版为 2.2.0;1.3.1 为 javax 兼容维护线

二、软件概述

2.1 项目简介

本文介绍的版本为 Apache Johnzon 2.2.0。Johnzon 是 Apache 软件基金会旗下纯 Java 实现的 JSON 处理库,官方声明其完整实现 Jakarta JSON Processing(JSON-P)2.1 与 JSON Binding(JSON-B)3.0 规范,同时提供自有的 Mapper 模块实现对象与 JSON 的映射。2.x 系列将 API 命名空间从 javax 迁移至 jakarta,官方下载页明确说明该版本与 1.x 不向后兼容;1.3.1 维护线对应 JavaEE 7 层级的 javax 体系,供存量系统延续使用。

2.2 基本信息

条目内容
软件名称Apache Johnzon
本次介绍版本2.2.0(GitHub 条目时间 2026-08-05)
开发语言Java
开源许可Apache License 2.0
代码托管https://github.com/apache/johnzon
规范符合度Jakarta JSON-P 2.1、Jakarta JSON-B 3.0(官网声明)
归属组织Apache Software Foundation

三、核心架构

3.1 模块划分

官网文档描述的核心模块如下:

  • johnzon-core:流式解析与生成的核心实现,官网声明其为默认符合 JSON-P 规范的实现(2.0.x 起默认严格合规);
  • johnzon-mapper:对象与 JSON 的映射模块,基于注解配置访问策略(AccessMode),支持与任意 IoC 框架集成;
  • johnzon-jsonb:在 Mapper 之上实现 JSON-B 标准 API,官网声明其完全复用 JSON-B 作为编程接口。

3.2 双层 API 设计

  • 标准层:面向 jakarta.json 与 jakarta.json.bind 标准 API 编程,可在不同实现间移植;
  • 原生层:直接使用 Mapper API 获得更细粒度的映射控制;
  • 官网同时提示:Jakarta JSON-P API 的默认依赖绑定 parsson 作为底层实现,使用时需按官方说明处理依赖关系。

四、功能特性

  • 双规范实现:同一构件族内同时提供 Jakarta JSON-P 2.1 与 JSON-B 3.0 能力(官网声明);
  • 对象映射:Mapper 支持注解驱动的读写映射,可定制属性访问模式;
  • 流式处理:基于 core 的流式解析/生成,适合大文档与高吞吐场景;
  • 可插拔配置:Mapper 提供丰富的构建期配置项,可集成外部 IoC 框架;
  • 维护线清晰:2.x(jakarta)与 1.x(javax/JavaEE 7 层级)双线并存,便于渐进迁移;
  • ASF 治理:Apache License 2.0,无商业授权风险。

五、快速上手

5.1 引入依赖

按官方文档,2.2.0 使用 jakarta 命名空间;典型做法是引入 johnzon-jsonb(含 core 与 mapper),或仅引入 johnzon-core 使用 JSON-P API(坐标 org.apache.johnzon,版本 2.2.0,可从 Maven Central 获取)。

5.2 Mapper 最小示例(引自官网首页)

官方首页(https://johnzon.apache.org/)给出的 Mapper 用法结构如下:

final MySuperObject object = createObject();

final Mapper mapper = new MapperBuilder().build();
mapper.writeObject(object, outputStream);

final MySuperObject otherObject = mapper.readObject(inputStream, MySuperObject.class);

即通过 MapperBuilder 构建 Mapper 后,即可完成对象到 JSON 输出流的写出与从输入流读取还原。

5.3 官方来源说明

以上示例与模块说明均出自 Apache Johnzon 官网与其下载页,本文未做本地运行与输出编造。

六、适用场景与限制

6.1 适用场景

  • Jakarta EE 10 及以上、已迁移到 jakarta 命名空间的应用(如新版本应用服务器环境)的 JSON 处理;
  • 需要标准 JSON-P/JSON-B 实现且希望保持 Apache 许可纯净度的项目;
  • 需要注解驱动对象映射又不希望引入重型框架的 Java 服务;
  • 从 1.x(javax)逐步迁移的存量系统:先以 1.3.1 维持,再切 2.x。

6.2 限制与注意

  • 2.x 与 1.x 不向后兼容(命名空间 javax 迁移至 jakarta,官方下载页明确声明),升级是破坏性变更;
  • 社区规模较小(GitHub stars 约 57),生态示例与第三方资料少于 Jackson、Gson;
  • 若项目仍在 JavaEE 7 层级的 javax 环境,应使用 1.3.1 维护线而非 2.x;
  • 高级定制(性能调优、扩展序列化)文档相对精简,部分能力需阅读源码。

七、同类选型对比

7.1 候选与量化数据总表

软件开源许可GitHub stars / 最近发版版本节奏兼容矩阵
Apache Johnzon 2.2.0Apache-2.057 stars / 2.2.0(2026-08-05)2.x 与 1.x 双线维护Jakarta JSON-P 2.1、JSON-B 3.0,jakarta 命名空间
Jackson(jackson-core 2.22.4)Apache-2.0(仓库标签)2,379 stars(jackson-core 仓库)/ 2.22.4(Maven Central)高频小步发版自有流式 API + JSON-B 实现模块,javax/jakarta 兼容模块并存
Gson(gson-parent 2.14.0)Apache-2.0(仓库标签)24,237 stars / gson-parent-2.14.0(releases/latest 重定向)持续迭代Java 8+,无注解亦可映射
JSON-java 20260814官方仓库未标注 SPDX 许可标签4,722 stars / 20260814(Maven Central 与 releases/latest 一致)以日期为版本号,持续发版极简 API,无外部依赖

注:stars 数据取自各项目 GitHub 仓库页面(2026-10-18 抓取);jackson-core 与 JSON-java 版本取自 Maven Central 元数据,Gson 版本取自 GitHub releases/latest 重定向;Jackson stars 统计其流式核心仓库 jackson-core。

7.2 差异分析

  • 标准符合度:Johnzon 与 Jackson 均提供 JSON-P/JSON-B 实现,Johnzon 以双规范一站式为卖点,Gson 与 JSON-java 走自有轻量 API 路线;
  • 生态规模:Jackson 是 Java 生态事实标准,模块生态最全;Gson 胜在简单易用与庞大用户基数;Johnzon 社区最小但治理透明;
  • 场景适配:Jakarta EE 10+ 新项目选 Johnzon 可获得原生 jakarta 规范实现;遗留 javax 环境应选各库的兼容线;
  • 性能定位:JSON-java 最轻但功能最少;Jackson 流式性能与扩展点最丰富;Johnzon 与 Gson 处于中间地带。

7.3 选型建议

Jakarta EE 10+ 或 Spring Boot 3 级别的 jakarta 环境中需要标准 JSON-B/JSON-P 实现时选 Apache Johnzon 2.2.0;若更看重生态成熟度与扩展模块则选 Jackson,追求极简可用选 Gson 或 JSON-java。

八、参考链接