2015-11-13 61 views
3

考虑这个问题:损失指针

var master = { 
    type:"master" 
}; 

var slave = { 
    type:"slave" 
}; 

var array = [ master, slave, slave ]; 

现在,如果我会想,超过移动到服务器,以拯救那些到DB o.th.,指针关系会迷路,只要我使用像JSON或XML这样的seralisation。

例如,服务器脚本怎么知道slaveslave只是相同的对象?

例如这将创建三个不同的DB行,其中一个具有列type中的“主”,以及type列中具有“从”的两个不同行。

你如何处理它?它是否在某些情况下被广泛使用?

+0

但不在分贝可供这种情况下唯一约束?也不能有一个主人有多个奴隶? – Rajesh

+0

'slave's只是序列化后两个等于JSON的字符串部分。在不提供额外数据的情况下实现你想要的明显不可能,比如唯一的ID。 “ –

+1

”服务器脚本怎么知道,那个奴隶和奴隶只是同一个对象?“不要责怪JSON甚至在JS中的数组将不同对待他们获得一个对象来存储他们 – CY5

回答

2

我不确定是否有简单的方法来完成你想要的。我会考虑做以下几点:

  • 有一个“获得或制造”方法管理是否创建了对储蓄object列一个新的记录,并在object.type("array", "object.type")取决于您使用添加唯一约束案件。

  • 使用基于RFC-6901库,如json-pointer完成以下任务:

    //on the client 
    var obj = {}; 
    pointer.set(obj, '/example/bla', 'hello'); 
    
    //on the server 
    var obj = { 
        example: { 
         bla: 'hello' 
        } 
    }; 
    
    pointer.get(obj, '/example/bla'); 
    
+0

需要一些时间来深入研究RFC-6901。指针是否考虑在那里? –

+0

RFC-6901是用于在JSON中保留指针信息的标准。 – pygeek