我有一个问题JSON字符串与循环结构在javascript

e0uiprwp  于 2023-03-13  发布在  Java
关注(0)|答案(1)|浏览(165)

我尝试json strigify和解析后循环结构。我想传递给我所有的网站我的变量套接字时,我使用套接字io。在React,这很容易,但该项目是旧的,他们不使用React的所有项目。
我使用了flatted库,它在stringify上运行的很好,但是我没有得到我的原始元素,当我解析它的时候,我得到了一个对象

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

编辑:

谢谢你的帮助。

gab6jxml

gab6jxml1#

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

要避免出现错误消息,请告诉JSON.stringify如何处理循环引用。
stringify的第二个参数是一个 *filter函数 *,这里它只是将引用的对象转换成它的ID,但是你可以随意做任何你想做的事情来打破循环引用。
例如,如果一个人指向另一个人(“父亲”),而这可能(也可能不)指向原来的人,请执行以下操作:

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

相关问题