1

具体的な基本クラスAnimal、、およびいくつかのサブクラスDogなどCatがあります。

Dogとの詳細は関係ないので、これらのサブクラスのインスタンスを、 sがシリアル化されるのCatと同じ方法でシリアル化したいと思います。Animal

そのようなサブクラスはかなりたくさんあるので、それらすべてをリストしないソリューションをお勧めします。に基づく何かinstanceof Animalが理想的です。

4

2 に答える 2

1

(コメントから完全な回答に移動)

サブクラスをそれらのサブクラスとしてシリアライズせず、親としてのみシリアライズしたくない場合は、サブクラスのすべてのフィールドをtransientデフォルトGsonでシリアライズしないようにマークするだけです。

どちらの方法でも実行できるようにする場合は、親クラスのすべてのフィールドを Gson@Exposeアノテーションでマークします。次に、シリアル化するときに、次を使用してシリアル化する方法を選択できます。

Gson gson = GsonBuilder().excludeFieldsWithoutExposeAnnotation().create(); 

JSON で表される親クラスのみが必要な場合。

于 2013-02-25T21:50:40.483 に答える