コンテキストとして、ほとんどのデータをJSON文字列として保存しています。これは、バックエンドのHadoopで非常にうまく機能し、フロントエンドのRubyで簡単に処理できます。私のデータ型は、継承の自然なパターンに適合しています。
簡単にするために、クラスPetと、ペットに餌を与えるプロセスFeedPetがあるとします。また、ペットの一種であるDogにのみ適用されるWalkDogプロセスもあります。私のデータは、犬ではないペットを歩こうとすることを心配する必要がないように編成されています。
私がやりたいのは、PetとDogがPetを拡張し、Dogに追加のメソッド「getLeash()」があることですが、これをJSONにマップする方法がわかりません。
代わりに、種データハッシュマップを持つクラスPetがあるため、WalkDogプロセスはdog.getLeash()ではなくpet.getSpeciesData( "leash")を呼び出します。
Dog extends Petを作成し、Jacksonライブラリを使用してそれをJSONにシリアル化できます。JSONオブジェクトにはリーシュフィールドがあります。しかし、私がすべてのペットに餌を与えたいと仮定します。すべてのペットにはgetFood()メソッドがあります。したがって、FeedPetプロセスはオブジェクトをPetに逆シリアル化します。しかし、これはリーシュフィールドを失います。
WalkDogプロセスは、すべての入力がDogsになることを認識しているため、これを実行できます。これにより、WalkDogプロセスは、Dogとして読み取り、Dogとして書き戻すことができます。
タイプを保持できるようにJavaオブジェクトをJSONにシリアル化する方法はありますか?Railsの単一テーブル継承のようなものを考えていますが、JSONライブラリが理解できるものでなければなりません。