【问题标题】:Storing JS arrays and objects in a database在数据库中存储 JS 数组和对象
【发布时间】:2011-11-01 12:24:22
【问题描述】:

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

SQL 对于该特定任务似乎很糟糕,迫使我为每个不同的对象维护表,可惜我对 NoSQL 数据库知之甚少。您将使用什么工具来执行此操作? MongoDB 听起来很有希望,但在我学习一个全新的数据库范例之前,我想确定我正朝着正确的方向前进。

【问题讨论】:

    标签: javascript database nosql


    【解决方案1】:

    对象到字符串:

    您可以将对象作为 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

    【讨论】:

    • 我不太确定 JSON.stringify 因为我的对象包含方法,上次我检查它会给我一个 TypeError :/ 例如看这个:jsfiddle.net/cyddle/49fdu 函数未字符串化
    • @Downvoter,请问为什么?我的答案与其他三个答案相同,只是更详细。它也恰好是公认的答案。为什么投反对票?
    【解决方案2】:

    如果您对查询对象的各种属性不感兴趣,而只是将它们持久化以保存状态,则可以将整个数组序列化为 JSON 并将其作为一个字符串存储在您喜欢的任何数据库中。

    【讨论】:

      【解决方案3】:

      服务器上有什么?

      大多数语言都有成熟的 JSON 实现,可以将 JavaScript 对象转换为本机类型,然后您可以轻松地将其存储在 SQL 数据库中。

      【讨论】:

      • 目前服务器上什么都没有,这是一个 100% HTML5/JS 项目,所以我可以选择任何东西。我无法预测要存储的最终数组的大小,所以我猜我的表将包含一个 ID 和一个 huuuuge blob?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-15
      • 2012-05-19
      相关资源
      最近更新 更多