Class JsonStreamingValidateCommand

All Implemented Interfaces:
IStreamCommand

JsonSurferを使った完全ストリーミングJSON検証コマンド

このクラスは真のストリーミング処理でJSONを検証します。 従来のJSON Schema検証と組み合わせて、大容量データに対応しつつ詳細な検証を提供します。

アプローチ:
1. JsonSurferによる高速ストリーミング事前検証(構造・必須フィールド確認)
2. 事前検証通過時のみJSON Schema検証実行
3. 任意サイズのデータを一定メモリで処理

ライブラリ選択理由:
JsonSurferを採用した理由:

  • ✅ 完全ストリーミング処理(DOM構築なし)
  • ✅ JsonPathサポートによる柔軟な検証ルール記述
  • ✅ イベントドリブンでメモリ効率最大化
  • ✅ Jackson統合で既存依存関係と整合

他ライブラリを採用しなかった理由:

  • StAXON: XML思考の強制、namespace問題、JSON型情報の欠如
  • JSR 353: 低レベルAPI、JsonPathなし、ボイラープレート大量
  • Gson JsonReader: プル解析のみ、状態管理必須、実装複雑化

使用例:

 JsonStreamingValidateCommand validator = new JsonStreamingValidateCommand("schema/user.json");
 validator.consume(jsonInputStream);