繁体   English   中英

我在javascript中使用循环结构进行JSON字符串化时遇到问题

[英]I have a problem JSON stringify with circular structure in javascript

我尝试在圆形结构后进行json分层和解析。 我想在使用套接字io时将我的变量套接字传递给我的所有网站。 在React中,这很容易,但是项目很旧,并且他们没有对所有项目都使用React。

我使用扁平化库,它对于字符串化非常有用,但是我没有得到我的原始元素。 当我解析它时,我得到一个对象

const mySocket = io("monsite:1234");
const stringigy = JSON.stringify(mySocket);
localStorage.setItem("io",mySocket);

不起作用,因为圆形结构。

带扁平

const mySocket = io("monsite:1234");
const stringigy = Flatted.stringify(mySocket);
localStorage.setItem("io",mySocket);

工作,但是当我解析时,我没有得到原始值

socket = Flatted.parse(getIo);

编辑: 扁平化

感谢帮助。

圆形结构是当对象的属性是对象本身直接( a -> a )或间接( a -> b -> a )时。

为了避免出现错误消息,请告诉JSON.stringify如何处理循环引用。

要进行stringify的第二个参数是过滤器函数 在这里,它只是将引用的对象转换为其ID,但是您可以随意做任何破坏循环引用的操作。

例如,如果您有一个人指向另一个人(“父亲”),该人可能(也可能不)指向原始人,请执行以下操作:

JSON.stringify( that.person, function( key, value) {
  if( key == 'father') { return value.id;}
  else {return value;}
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM