2011-11-01 34 views
3

我有一个应用程序,让用户在JS打造的东西。我希望用户能够保存其工作的当前状态以重用或共享它,但他拥有的是存储在JS数组中的JS对象的集合,具有非常不同的属性(颜色,标签,x/y位置,大小等)。贮藏JS数组和对象在数据库中

SQL似乎可怕的是特定的任务,迫使我保持​​每一个不同的对象表,唉我所知甚少的NoSQL数据库。你会用什么工具来执行此操作? MongoDB听起来很有前途,但在我学习全新的数据库范例之前,我想确保我正朝着正确的方向前进。

回答

4

对象为字符串:

您可以在DB你的对象存储为一个JSON字符串。这里有一个简单的例子:

var foo = new Object(); 
foo.Name = "James"; 
foo.Gender = "Male"; 

//Result: {"Name":"James","Gender":"Male"} 
var stringRepresentation = window.JSON.stringify(foo); 

这里的a working fiddle

字符串对象:

将字符串转换回对象,只需拨打window.JSON.parse()

var myObject = window.JSON.parse(stringRepresentation); 

这里的a working fiddle

+0

我不是太肯定JSON.stringify因为我的对象包含方法,和我最后一次检查它会给我一个类型错误:/看到,例如:http://jsfiddle.net/cyddle/49fdu/的函数没有字符串化 – Cystack

+1

@Downvoter,请问为什么?我的答案与其他三个答案相同,只是更详细。它恰好也是被接受的答案。为什么downvote? –

0

如果您在quering对象为他们的各种属性没有兴趣,但只坚持他们保存状态,可以序列整个数组到JSON并将其存储在你喜欢作为一个字符串的任何分贝。

0

有什么服务器?

大多数语言都有成熟的JSON实现,转换JavaScript对象到原生类型,你可以很容易在SQL数据库中存储。

+0

到目前为止服务器上没有任何东西,这是一个100%的HTML5/JS项目,所以我可以选择任何东西。我无法预测要存储的最终数组的大小,所以我想我的表将包含一个ID和一个huuuuge blob? – Cystack