3

このオブジェクトをgsonからjsonにシリアライズおよびデシリアライズするにはどうすればよいですか:

public class test{

@Expose
public List< Pair<Double,Double> > list;

@Expose
public int alpha;
}

私はこれを試しました:

Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();
String str = gson.toJson(testInstance,test.class);

ここで、testInstance はクラス test のインスタンスですが、リストのペア構造のために機能しません。

4

2 に答える 2

1

メソッドGsonを使用してオブジェクトを構成しました。ドキュメントexcludeFieldsWithoutExposeAnnotationから:

Expose アノテーションを持たないすべてのフィールドをシリアル化または逆シリアル化の対象から除外するように Gson を構成します。

ペアクラスを変更できますか?はいの場合、@ExposeJSON にシリアル化する各プロパティに注釈を追加する必要があります。いいえの場合は、プログラムで同様のクラスを作成し、注釈を追加できます。

于 2013-07-20T10:46:49.727 に答える
0

オブジェクトがジェネリック型の場合、ジェネリック型の情報は のために失われJava Type Erasureます。この問題は、ジェネリック型に正しいパラメーター化された型を指定することで解決できます。のようなパラメータ化された型を試してくださいList<String>。これはうまくいくはずです

于 2013-07-19T15:55:05.000 に答える