如果我只是加入.toJson
and.fromJson
而不是使用.writeObject
and .readObject
,我会得到相同的结果吗?此外,您可以放入要序列化的类中的和方法
的 GSON 等价物是什么?readObject
writeObject
问问题
171 次
2 回答
1
Gson 不支持继承或循环引用,不足以替代 Java 序列化。
对于继承,使用RuntimeTypeAdapterFactory将类名编码为 JSON 值。
对于循环引用,您可以使用GraphAdapterBuilder按引用而不是按值对值进行编码。
这些文件都不包含在 Gson 发行版中。如果您想使用它们,您需要将它们复制并粘贴到您的应用程序中。
于 2012-12-26T16:51:00.640 回答
0
Gson AFAIK 没有 readObject 和 writeObject (根据它的API)
至于问题的第二部分: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 回答