考虑一下:

var master = {
  type:"master"
};

var slave = {
  type:"slave"
};

var array = [ master, slave, slave ];

现在,如果我想将它移到服务器上,以便将它们保存到一个 DB o.th.,只要我使用像 JSON 或 XML 这样的序列化,指针关系就会丢失。

例如,服务器脚本怎么知道 slaveslave 是同一个对象?

例如这将创建三个不同的 DB 行,一个在 type 列中带有“master”,在 type 列中有两个不同的行带有“slave”。

你如何解决?是否有某种模式在这些情况下被广泛使用?

最佳答案

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

  • 有一个“获取或创建”方法管理是否在保存时为 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');
    
  • 关于javascript - JSON 中的指针丢失,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33699125/

    10-16 14:28