このプロジェクトについて

# Jacksonプロジェクトホーム これはJacksonプロジェクトのメインポータルページです。JacksonはJavaおよびJVMプラットフォーム向けのデータ処理ツール群であり、「Java JSONライブラリ」または「Java向け最高のJSONパーサー」として広く知られていますが、JSONを超えて他の多くのデータ形式もサポートしています。 ## 概要 Jacksonが提供するもの: - **ストリーミングJSONパーサー/ジェネレーター**(jackson-core):低レベルで高性能なAPI - **データバインディング**(jackson-databind):POJOとJSON間のシリアライズ/デシリアライズ - **アノテーション**(jackson-annotations):シリアライズ制御のための標準アノテーション - **データ形式モジュール**:Avro、CBOR、CSV、Ion、Protobuf、Smile、TOML、YAMLなどのサポート - **データ型モジュール**:Java 8型、Guava、Joda-Time、および多くのサードパーティライブラリのサポート - **JVM言語モジュール**:Kotlin、Scalaなど ## バージョニング - **1.x**(`org.codehaus.jackson`):非推奨、新規リリースなし - **2.x**(`com.fasterxml.jackson.core`):成熟して広く使用され、LTSブランチ(例:2.18、2.21)あり - **3.x**(`tools.jackson`):活発に開発中、新規プロジェクトに推奨 メジャーバージョンは異なるJavaパッケージとMaven groupIdを使用するため、同じプロジェクト内で競合なく共存できます。 ## コアモジュール - **jackson-core**:ストリーミングAPI、JSON固有の実装 - **jackson-databind**:データバインディングとオブジェクトシリアライズ、ストリーミングとアノテーションに依存 - **jackson-annotations**:アノテーションベースの設定 - **jackson-bom**:一貫したバージョン管理のための部品表(Bill of Materials) ## データ形式モジュール 完全にサポートされている形式: - **Avro**:スキーマサポート付きバイナリデータ形式 - **CBOR**:バイナリJSONの変種 - **CSV**:カンマ区切り値 - **Ion**:Amazon Ionバイナリ形式 - **Protobuf**:Protocol Buffers - **Smile**:バイナリJSON、ストリーミングと100% API互換 - **TOML**:設定形式 - **YAML**:人間可読なデータ形式 サードパーティモジュールは、BEncode、BSON、MessagePack、Risonなどのサポートを追加します。 ## データ型モジュール 公式モジュールがサポートするもの: - Java 8型(Optional、日付/時刻) - Guavaコレクション - Joda-Time - JSON-P(javax.jsonおよびjakarta.json) - org.json型 コミュニティモジュールは、VAVR、Apache Commons Lang、Java Moneyなどのサポートを追加します。 ## 追加ツール - **Afterburner**:バイトコード生成によりデータバインディングを30-40%高速化 - **Mr Bean**:実装クラスをその場で生成 - **JSON Schemaジェネレーター**:POJOからJSON Schemaを生成 - **バリデーター**:Java JSON Schemaバリデーター ## コミュニティとサポート Jacksonはメーリングリスト、Gitter、GitHub issuesを通じてサポートされています。プロジェクトは貢献を歓迎しており、詳細はCONTRIBUTING.mdを参照してください。セキュリティ脆弱性は非公開で報告できます。 ## 最近の更新 - 2025年9月:Jackson 3移行ガイド追加 - 2025年9月:2.20でのjackson-annotationsバージョニングスキーム変更 - 2024年2月:データ形式/データ型モジュールのセキュリティ監査 - 2023年12月:コーディングスタイルガイド追加 完全なリリースノートとサポート状況については、Jackson Releases wikiページを参照してください。