[英]serialization object reference with Gson
我正在开发地图构建器应用程序。 它具有公共汽车,火车,车站以及车站之间的线路。 所有这些数据都存储在名为“ Map”的类中。
我需要将Map实例存储到JSON文件中。 我选择使用Gson。 这是我的地图,路线和车站类:
public class Map
{
private LinkedList<Station> stations;
private LinkedList<Line> lines;
// methods ...
}
public class Line
{
private String name;
private LinkedList<Station> stations;
// methods
}
public class Station
{
private int number;
private String name;
private double latitude;
private double longitude;
private String cityName;
// methods
}
我的问题是,所有我的对象都存储为独立对象(没有任何引用)。 如您所见,地图包含测站和测线。 行包含站。 当我加载JSON并更改map类中的站点时,同一站点不会更改,因为它没有通过引用链接。
看一看。
http://code.google.com/p/json-io/
看看它是否保留了“对象图”的语义。
还要看:
http://benjamin.smedbergs.us/blog/2008-08-21/json-serialization-of-interconnected-object-graphs/
http://www.jspon.org/#JSPON%20Core%20Spec
我不太确定原始格式的JSON是否支持您想要的内容(而且您想
序列化然后正确反序列化整个对象图,而不仅仅是对象树)。
我想JSON不支持该功能,但我不是100%肯定(我自己不需要)。
在树中,每个对象只有1个父对象,因此没有问题。
在图中,您可能使对象A和B都指向某个对象C。
那么,您现在如何序列化C? 您是在A(即在序列化A的同时)还是B中进行的,还是
在A和B之外,然后让A和B以某种方式指向那个序列化的C?
还是只序列化C两次(在A中一次,在B中一次)? 顺便说一句,不是吗
和XML一样吗? 我猜XML和JSON都不是为此设计的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.