2

我有一个包含数组的对象,该数组由其他数组组成,它还包含方法。我面临的问题是由于多维数组和方法,我不能使用 JSon。

我想将其转换为字符串的原因是存储到 Iphone 的 localStorage 中。

您只能在其中存储文本,我希望有一种方法可以将有关用户的复杂对象存储为字符串,然后能够再次反序列化它。有没有办法做到这一点。我不太了解javascript,无法编写自己的api。这是我现在开始尝试研究的选项:(

4

4 回答 4

2

将其序列化为 JSON。您可以序列化/反序列化复杂的对象和数组。

您无法序列化方法(代码)。

对于本地存储持久性,我会推荐Lawnchair

于 2012-05-23T13:03:20.173 回答
0

无需存储在 localStorage 中,您可以在应用程序的任何位置使用全局数组 尝试一次

于 2012-05-23T13:09:55.243 回答
0

通常可以使用序列化方法myfunc.toString()

因此,您可以在和识别方法中使用replacer函数,并调用它们,它们会在解析时以某种方式识别它们并将它们转换回一流的函数。JSON.stringify()JSON.parse().toString()

但是 - 请注意,重构的函数将无法访问原始对象的范围,即私有变量或方法等。

例如

function A() {
    var foo = 'bar';
    this.test = function test() { console.log(foo) };
};

var b = new A();
var f = b.test.toString();  // the text of the method
b.test2 = new Function(f);

b.test2();
> undefined
于 2012-05-23T13:11:37.470 回答
0

好吧,有一种方法可以将带有函数的对象转换为字符串和虎钳诗句。看看这个插件:

http://www.eslinstructor.net/jsonfn/

祝你好运,

-瓦迪姆

于 2012-08-28T08:03:02.033 回答