neb*_*ebs 7 javascript serialization storage json circular-reference
我想在本地保存一个具有循环引用的对象.我有什么选择?
我的第一个想法是使用HTML5本地存储,但由于循环引用,我无法对此对象进行字符串化.
具体来说,我正在尝试保存当前选择的DOMSelection对象.
例:
var sel = window.getSelection();
var selstring = JSON.stringify(sel); // Breaks here ...
localStorage.setItem("selection",selstring);
Run Code Online (Sandbox Code Playgroud)
我现在可以让stringify工作的唯一方法是忽略某些对象,如下所示:
var selstring = JSON.stringify(sel,function(k,v){
if( k=="anchorNode" ||
k=="baseNode" ||
k=="extentNode" ||
k=="focusNode") return undefined;
return v;
});
Run Code Online (Sandbox Code Playgroud)
但这给我留下了一个相当空的DOMSelection对象,这对我所需要的还不够.
有没有其他方法可以保存这个对象?唯一的要求是它在移动游猎中运行,其他任何东西都是真的.解决方案可以是javascript或jquery(或任何其他js lib,如果需要).
感谢您的任何帮助,您可以提供.
查看Crockford 的 JSON-JS GitHub 存储库。它有一个文件cycle.js
,据说可以使用 JSONPath 将具有循环引用的对象转换为 JSON 并返回。请参阅存储库的自述文件的最后一段和文件的评论。
归档时间: |
|
查看次数: |
6365 次 |
最近记录: |