JEP 198: Light-Weight JSON API
2014年6月にMike Duigouが提案した、JDK標準の軽量JSON API。RFC7159準拠のJSONドキュメント・データストリームの解析・生成を目的としていたが、実装されないままClosed / Withdrawnとして終了した。2026年現在はJEP 540: Simple JSON APIに置き換えられている。
Goals(目標)
- JSON(RFC7159)の解析・生成
- パース方式として、トークンストリーム・イベントストリーム(ドキュメント階層情報を含む)・イミュータブルなツリー表現の3種を選択可能にする
- compact profileやJava ME向けにも使える程度の小さいAPIサブセット
- Builderスタイルによるイミュータブルな値ツリーの構築
- JSONデータストリーム出力・JSON「リテラル」向けのGeneratorスタイルAPI
- 既存の値ツリーを入力に新しい値ツリーを生成するTransformer API
Non-goals
- JSR 353への準拠
- JAXBスタイルの型安全なデータバインディング
- イベントの変更・置換API
- ドキュメントツリーの変更API
設計の想定
java.util階層のサブパッケージ群として、events・streams・trees・generatorsの最低4モジュール構成で提供される想定だった。ストリームイベントとドキュメントオブジェクトはイミュータブルとし、ツリー変換時に未変更部分をオリジナルツリーと共有できるようにする設計だった。パースはSAXに似たイベントストリームモードと、DOMに似た値ツリーモードの2方式を提供する計画だった。
その後
JDK 9をターゲットに議論されたが、Dropされた(コミュニティでは"Proposed to Drop"として告知された)。以降10年近くJDK標準のJSON APIは存在しない状態が続き、2025年頃から後継となるJEP 540の議論が再開した。
出典
- JEP 198: Light-Weight JSON API - OpenJDK
- Proposed to Drop: JEP 198: Light-Weight JSON API - OpenJDK Mailing List
- JEP 540 Proposed to Target JDK 28 with a Simple JSON API - InfoQ