寻找将循环对象转换为字符串的好方法

12 浏览
0 Comments

寻找将循环对象转换为字符串的好方法

所以我稍微查看了一下,发现了很多损坏的链接和我无法理解的解释。\n我正在为一个游戏应用程序提出这个问题,例如,一个所有者将拥有一个物品,该物品也被所有者持有。\n我的服务器没有问题存储循环引用。\n但是当客户端首次登录时,我会将玩家对象发送给客户端。我对如何做到这一点感到困惑。物品可以由玩家在背包槽位上持有,例如玩家的手,头部...一个物品也可以在地面上的x,y位置。我考虑过使用一个带有id的容器,它只充当指针,而不是传递JSON字符串对象。\n能够传递循环对象将是很好的,或者一个简单的函数可以使用id来引用物品所在的位置也可以。\n这是我对解决方案的最佳尝试\n

//创建一个对象
//运行这个函数
function createReference(ref){
    container = io.sockets.containersById.push(ref)
    io.sockets.containersById[container-1]={ref:ref}
    return (container-1)
}

\n//将返回值作为对象属性进行存储

0
0 Comments

问题的出现原因:需要将循环引用的对象转化为字符串形式,但循环引用并没有实际的用途。

解决方法:

1. 使用数据格式来表示循环引用的对象,通过引用连接彼此,而不是将它们直接放在对象的数据结构中。

2. 可以在XML或者其他格式中使用引用来连接对象。在解析数据时,可以根据引用来建立对象之间的连接。

3. 可以将连接信息分离出来,使用类似SQL中的链接表的形式来表示循环引用,这样可以明确地指明双向链接关系。

以上解决方法可以使用不同的数据格式来实现,比如XML、JSON等。在反序列化时,需要编写解析代码来重新建立对象之间的连接关系。

0