Javascript 我可以用JSON或类似的东西保存循环数据结构吗?
当尝试使用JSON将游戏世界的一些数据保存到文件中时,我得到了一个很好的ol'JSON循环引用错误。有没有办法保存循环数据类型?另外,我使用node.js运行这个程序,而不是在浏览器中运行 基本上,随着时间的推移,玩家会得到一些单位。这些单位被保存到玩家对象内的列表中,但作为参数提供给玩家自己,因此他们知道谁是他们的所有者。大概是这样的:Javascript 我可以用JSON或类似的东西保存循环数据结构吗?,javascript,json,node.js,error-handling,reference,Javascript,Json,Node.js,Error Handling,Reference,当尝试使用JSON将游戏世界的一些数据保存到文件中时,我得到了一个很好的ol'JSON循环引用错误。有没有办法保存循环数据类型?另外,我使用node.js运行这个程序,而不是在浏览器中运行 基本上,随着时间的推移,玩家会得到一些单位。这些单位被保存到玩家对象内的列表中,但作为参数提供给玩家自己,因此他们知道谁是他们的所有者。大概是这样的: Player = function() { this.power = 0 this.units = [new Unit(this)]; }
Player = function()
{
this.power = 0
this.units = [new Unit(this)];
}
Unit = function(owner)
{
owner.power++;
}
@在回答如何包含cycle.js时 将它放在项目的lib文件夹中,如果在客户端执行,则通过脚本标记将其包括在内 在服务器端,您可以在需要循环引用的文件中包含代码;这很简单,但实际上是错误的工作方式。更好的办法是将其构建为一个模块,检查具体细节
不过,你的最佳选择是重构,这样你就不需要循环引用。你不能序列化循环引用,你可以引用一个id吗?有一些序列化库可以为你解决这个问题:嘿,cycle.js文件可能是我需要的,但是我如何在我的代码中包含它呢?嘿,编辑那个代码是我力所不及的,我没有一半的语法,而且很难阅读。。。你能给我一些关于“export”前缀放在哪里的提示吗?所以,基本的想法是我必须编辑cycle.js文件,将“export”前缀添加到这两个函数中?大多数情况下,我没有彻底检查cycle.js文件,所以我不能100%确定它是否依赖于其他任何东西。但除此之外,基本上是的。另外,它使用了jsonPath,所以你会希望npm安装jsonPath,看起来之后它会工作。好的,谢谢,我明天会尝试一下,让你回来。我在定位系统上遇到了一些问题,所以我只是注释了它保存游戏的部分,稍后再处理。