具体的な基本クラスAnimal、、およびいくつかのサブクラスDogなどCatがあります。
Dogとの詳細は関係ないので、これらのサブクラスのインスタンスを、 sがシリアル化されるのCatと同じ方法でシリアル化したいと思います。Animal
そのようなサブクラスはかなりたくさんあるので、それらすべてをリストしないソリューションをお勧めします。に基づく何かinstanceof Animalが理想的です。
(コメントから完全な回答に移動)
サブクラスをそれらのサブクラスとしてシリアライズせず、親としてのみシリアライズしたくない場合は、サブクラスのすべてのフィールドをtransientデフォルトGsonでシリアライズしないようにマークするだけです。
どちらの方法でも実行できるようにする場合は、親クラスのすべてのフィールドを Gson@Exposeアノテーションでマークします。次に、シリアル化するときに、次を使用してシリアル化する方法を選択できます。
Gson gson = GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();
JSON で表される親クラスのみが必要な場合。