将Backbone.js集合导出到硬盘上的纯文本&导入回来

时间:2012-11-08 17:16:40

标签: javascript json backbone.js

我一直在修补Backbone.js一段时间了。我一直在使用localStorage来存储我的大部分应用数据。我想知道是否可以将我的集合导出为纯文本并将其重新导入。即我想创建一种备份类型的功能,当导出数据时,HTML文本框会显示我的集合的“纯文本”版本,当我需要导回数据时,我只需将其粘贴到空文本框中它重新创建了这个系列。

这是否可行,有关如何实现这一目标的任何提示?我正在考虑将其导出为JSON格式并将其导回。那可行吗?

P.S。我知道这里没有代码,但任何想法都会受到欢迎。

1 个答案:

答案 0 :(得分:4)

您可以使用toJSON序列化集合。 (实际上Backbone.js mentions thiscollection.toJSON())的主要用途。使用JSON.stringify将JSON对象转换为字符串。

var json = myCollection.toJSON();
var serializedString = JSON.stringify(json);

要恢复集合,请执行以下步骤:

  1. JSON.parse将原始字符串转换为JSON对象
  2. collection.reset将JSON对象转换为集合
  3. Here's a working example.

    // setup test collection
    var collection = new Backbone.Collection();
    collection.add(new Backbone.Model({ hello: "world" }));
    
    // serialize it to a string
    var json = collection.toJSON();
    var serialized = JSON.stringify(json);
    console.log(serialized);
    
    // get it back
    var json2 = JSON.parse(serialized);
    var collection2 = new Backbone.Collection();
    var restored = collection2.reset(json2);
    
    // check that it worked
    console.log(restored.at(0).get("hello"));