从json反序列化时保留引用

时间:2012-08-29 21:04:26

标签: java gson

我正在我的应用程序中实现标记系统。我有一个标记对象的所有Tags的主列表。对象可以有多个标记,这些标记是对主列表中标记的引用。

当我将数据作为json保存到文件中,然后在我的应用再次运行时加载它时,这些引用会丢失(tagInMainList == referenceToTag不成立。)

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

我非常关心身份,除非您需要最小化内存使用和/或其他重度优化。我担心,你需要一个自定义的反序列化器。有了它,您只需使用Guava的internerreturn tag替换为return myTagInterner.intern(tag)

答案 1 :(得分:1)

如果您松散地耦合了引用,那么它们只保存了地图查找中使用的键值,该怎么办?您仍然可以支持tagInMainList.equals(keyBasedReferenceToTag)tagInMainList.getKey().equals(keyBasedReferenceToTag)之类的平等。 JSON会更简单,甚至更简洁。