繁体   English   中英

使用Gson的序列化对象引用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM