我将JSON与Gson包一起用于Java.
我有一个对象,其中某个字段中的对象到另一个字段中的对象有一些内部引用.例如:
{ “loci”: [ { “id”: “loc1”,
“length”: 10000, “start”: 2 },
{ “id”: “loc2”, “length”: 100,
“start”: 50000 } ], “scenarios”: [
{ “id”: “scen1”, “loci”: [
{
“id”: “loc1”,
“length”: 10000,
“start”: 2
},
{
“id”: “loc2”,
“length”: 100,
“start”: 50000
} ] }, ] }
因此,实际上我的Java程序中只定义了两个轨迹对象(loc1和loc2),但是在打印输出中,这些对象被复制并同时出现在“ loci”下和“ scen1”内.
JSON是否可以反映出实际上只有两个对象(所以当我加载它时,它不会创建四个基因座而不是两个基因座)?
解决方法:
不能.JSON仅处理值,而不处理引用.您将需要使用某种约定来表明一个值实际上是一个引用,并编写一个自定义的序列化器/反序列化器.