一段时间以来,我一直在修补 Backbone.js。我一直在使用 localStorage 来存储我的大部分应用数据。我想知道是否可以将我的收藏导出为纯文本并再次导入。即我想创建一种备份类型的功能,当导出数据时,会显示一个 HTML 文本框,其中包含我的集合的“纯文本”版本,当我需要导入数据时,我只需将其粘贴到一个空文本框中并重新创建集合。
这可能吗,关于如何实现这一点的任何提示?我正在考虑将其导出为 JSON 格式并将其导入回来。这可行吗?
ps 我知道这里没有代码,但任何想法都会受到欢迎。
一段时间以来,我一直在修补 Backbone.js。我一直在使用 localStorage 来存储我的大部分应用数据。我想知道是否可以将我的收藏导出为纯文本并再次导入。即我想创建一种备份类型的功能,当导出数据时,会显示一个 HTML 文本框,其中包含我的集合的“纯文本”版本,当我需要导入数据时,我只需将其粘贴到一个空文本框中并重新创建集合。
这可能吗,关于如何实现这一点的任何提示?我正在考虑将其导出为 JSON 格式并将其导入回来。这可行吗?
ps 我知道这里没有代码,但任何想法都会受到欢迎。
您可以使用toJSON来序列化集合。(实际上Backbone.js 提到这是 的主要用途collection.toJSON())。用于JSON.stringify将 JSON 对象转换为字符串。
var json = myCollection.toJSON();
var serializedString = JSON.stringify(json);
要恢复集合,请反转步骤:
JSON.parse将原始字符串转换为 JSON 对象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>