1

.toJsonand.fromJsonを使用する代わりに立ち寄った場合.writeObject.readObject同じ結果が得られますか?さらに、シリアル化するクラスに配置できるおよびメソッド
に相当するGSONは何ですか?readObjectwriteObject

4

2 に答える 2

1

Gsonは、Javaシリアル化のドロップイン置換となるほど、継承または循環参照をサポートしていません。

継承の場合は、 RuntimeTypeAdapterFactoryを使用してクラス名をJSON値にエンコードします。

循環参照の場合、 GraphAdapterBuilderを使用して、値ではなく参照によって値をエンコードできます。

これらのファイルはどちらもGsonディストリビューションに含まれていません。それらを使用する場合は、それらをコピーしてアプリに貼り付ける必要があります。

于 2012-12-26T16:51:00.640 に答える
0

Gson AFAIKにはreadObjectとwriteObjectがありません(APIによると)

質問の2番目の部分について:GSONは次のように機能します:次のようにシリアライザー/デシリアライザーを実装できます:

private class DateTimeSerializer implements JsonSerializer<DateTime> {
    public JsonElement serialize(DateTime src, Type typeOfSrc, JsonSerializationContext context) {
    return new JsonPrimitive(src.toString());
    }
}

そしてそれらをに登録しますgson.registerTypeAdapter(DateTime.class, DateTimeSerializer());

于 2012-12-26T07:04:29.457 に答える