我正在使用以下复杂的对象:
ObjectA {
somearr: [
ObjectB {
somevar: ObjectD {...},
somecircularvar: pointer
},
ObjectC {...},
...
],
someobj: ObjectE {
someothercircularvar: pointer,
somevar: ObjectF {...}
},
someMethod: ...
}
上述对象具有以下内容:
-
嵌套对象
-
循环引用对象内的许多位置(不仅仅是主要参考)
-
用户定义的对象
Main Question :如何将 object
转换为 string
进行存储,如何将 string
解析回 object
并使用所有方法和变量?
Things I have Tried :
-
图书馆
-
Flatted.js
-
Cyro.js
-
JSONfn.js
-
搜索
-
现有的堆栈溢出问题(似乎没有处理我的怪物)
-
Google搜索用户定义对象的序列化(这些无法处理循环)
在尝试这些之后,我看到所有"solutions"处理循环和嵌套对象,而不是用户定义的对象 .
我确实记得尝试过几个其他的库,但没有一个可以同时处理循环,嵌套和用户定义的对象 .
我得到的最接近的是以下解析:
{
somearr: [
{
somevar: {...},
somecircularvar: pointer
},
{...},
...
],
someobj: {
someothercircularvar: pointer, // Circular pointer conserved
somevar: {...}
}
}
注意我的对象名称是如何消失的,每个 __proto__
现在都是默认对象(不是我的本地类定义的对象),我的方法都没有被保存 .
非常感谢能够解决这个问题的人 .
1 回答
是的,所以's kind of like you'重新序列化对象数据,而不是类数据 . 变量仍然存在,但关于类的元数据(即方法)没有被保留 .
一个解决方案可能是serialijse .
他们的第三个例子说明你的情况