Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我可以用JSON或类似的东西保存循环数据结构吗?_Javascript_Json_Node.js_Error Handling_Reference - Fatal编程技术网

Javascript 我可以用JSON或类似的东西保存循环数据结构吗?

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)]; }

当尝试使用JSON将游戏世界的一些数据保存到文件中时,我得到了一个很好的ol'JSON循环引用错误。有没有办法保存循环数据类型?另外,我使用node.js运行这个程序,而不是在浏览器中运行

基本上,随着时间的推移,玩家会得到一些单位。这些单位被保存到玩家对象内的列表中,但作为参数提供给玩家自己,因此他们知道谁是他们的所有者。大概是这样的:

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,看起来之后它会工作。好的,谢谢,我明天会尝试一下,让你回来。我在定位系统上遇到了一些问题,所以我只是注释了它保存游戏的部分,稍后再处理。