我想在本地保存具有循环引用的对象。我有什么选择?
我的第一个想法是使用HTML5本地存储,但是由于循环引用,我无法对该对象进行字符串化。
具体来说,我正在尝试保存当前选择的DOMSelection对象。
例:
var sel = window.getSelection();
var selstring = JSON.stringify(sel); // Breaks here ...
localStorage.setItem("selection",selstring);
我现在可以使字符串化工作的唯一方法是忽略某些对象,如下所示:
var selstring = JSON.stringify(sel,function(k,v){
if( k=="anchorNode" ||
k=="baseNode" ||
k=="extentNode" ||
k=="focusNode") return undefined;
return v;
});
但这给我留下了一个相当空的DOMSelection对象,不足以满足我的需要。
还有其他方法可以保存该对象吗?唯一的要求是它可以在移动safari中运行,其他任何事情都是真的。该解决方案可以使用javascript或jquery(如果需要,也可以使用其他js库)。
感谢您的任何帮助,您可以提供。
查看Crockford的JSON-JS GitHub存储库。它有一个文件,cycle.js
据称可以将具有循环引用的对象转换为JSON,然后使用JSONPath转换回来。请参阅存储库的“阅读我”和文件注释中的最后一段。
我正在使用JPA/Hibernate。 如果我持久化,我会得到“对象引用一个未保存的瞬态实例”或“在刷新之前保存瞬态实例:Entities.file.rootFolder->Entities.Category”(取决于首先持久化的内容)。 我必须有一种方法来注释这一点,这样它就会起作用,不管我先保存什么!?我可以通过编程的方式来解决这个问题,首先插入一个实体,而不引用另一个实体,然后插入另一个实体
问题内容: 我试图描述使用@JsonIdentityInfo杰克逊2 这里。 为了进行测试,我创建了以下两个类: 当然,幼稚的方法会失败: 添加到A类和/或B类也不起作用。 我希望我可以序列化(然后反序列化)为这样的东西:(尽管对JSON不太确定) 我怎样才能做到这一点? 问题答案: 似乎jackson-jr具有Jackson功能的一部分。一定没有切入。 如果可以使用完整的Jackson库,则只需
我希望我可以序列化(稍后反序列化)为如下所示:(但对JSON不太确定) 我怎么能那样做?
问题内容: 如果我从json.net获得序列化的JSON,如下所示: 我想让淘汰赛在FooList上输出foreach,但是我不确定如何继续,因为$ ref东西可能会抛出东西。 我在想解决方案将以某种方式通过不使用以下方式强制将所有Foos呈现在FooList中: 但这似乎很浪费。 问题答案: 从服务器接收的json对象包含循环引用。在使用对象之前,您必须首先 从对象中删除所有属性,这意味着`$r
问题内容: 在正在进行的项目中,人们编写了服务类来访问DAO。几乎每个业务对象都具有使用自己的DAO的自己的服务。在某些服务上,我们使用对其他服务的引用。目前,人们正在实例化构造函数内部所需的服务。 但是现在,我遇到了麻烦,因为服务A需要服务B而服务B需要服务A,因此对任一构造函数的调用都会导致堆栈溢出… 示例(伪代码): 您将如何解决?使用单例模式? 谢谢 问题答案: Spring框架通过使用依
下面是我的父组件,它包含一个循环的多个输入。如何选择一个来聚焦?在这种情况下,我必须创建动态吗?