如何将复杂的javascript对象转换为字符串和返回

时间:2012-05-23 13:01:25

标签: javascript string object serialization

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

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

你只能在那里存储文本,我希望有一种方法可以将一个关于用户的复杂对象存储为字符串,然后再将其反序列化。有没有办法做到这一点。我不太清楚javascript写自己的api。这是我开始尝试并考虑到这一点的选择:(

4 个答案:

答案 0 :(得分:2)

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

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

对于本地存储持久性,我建议Lawnchair

答案 1 :(得分:0)

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

答案 2 :(得分:0)

通常可以使用myfunc.toString()

序列化方法

因此,您可以使用replacerJSON.stringify()中的JSON.parse()功能识别方法,并在其上调用.toString(),然后以某种方式在解析时识别它们并将它们转回到第一类函数中。

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

e.g。

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

答案 3 :(得分:0)

阱, 有一种方法可以将带有函数的对象转换为字符串和vise verse。看一下这个插件:

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

祝你好运,

-Vadim