2

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

这可能吗,关于如何实现这一点的任何提示?我正在考虑将其导出为 JSON 格式并将其导入回来。这可行吗?

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

4

1 回答 1

4

您可以使用toJSON来序列化集合。(实际上Backbone.js 提到这是 的主要用途collection.toJSON())。用于JSON.stringify将 JSON 对象转换为字符串。

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

要恢复集合,请反转步骤:

  1. JSON.parse将原始字符串转换为 JSON 对象
  2. collection.reset将 JSON 对象转换为集合

这是一个工作示例。

// 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"));

​</p>

于 2012-11-08T17:33:05.930 回答