有没有人能够将Parse.com objects
存储到Javascript
项目的localStorage中?
我遇到的问题是,在转换object to JSON
时,我们会丢失对象上的id。这是因为Parse.com objects
中的ID未存储在属性中
给我一些提示。
在此先感谢。
更新 我的小例子
var Something = Parse.Object.extend("Something");
var something = new Something();
something.set("attribute1", "attribute1");
something.save(null, {
success: function(obj) {
something.fetch({
success: function(obj) {
console.log("object:"); console.log(obj);
console.log("json:"); console.log(JSON.stringify(obj));
},
})
},
})
给出了这个输出:
object: appmob.js:1563
d.hasOwnProperty.f
_changing: false
_escapedAttributes: Object
_existed: true
_hasData: true
_hashedJSON: Object
_opSetQueue: Array[1]
_pending: Object
_previousAttributes: Object
_saving: false
_serverData: Object
_silent: Object
attributes: Object
changed: Object
cid: "c0"
createdAt: Mon Sep 03 2012 15:43:50 GMT+1000 (EST)
id: "e419YJmhR5"
updatedAt: Mon Sep 03 2012 15:43:50 GMT+1000 (EST)
__proto__: c
**有id。
json:
{"attribute1":"attribute1","attribute2":"attribute2"}
**没有id。
这与此stackoverflow问题有关 Backbone model .toJSON() doesn't render all attributes to JSON
所以我想知道将JSON字符串存储到localstorage的最简单方法是什么。
答案 0 :(得分:3)
您可能有兴趣知道更新的Parse对他们的JS SDK有所作为:
v1.1.10 - 2012年11月13日
Parse.Object的扩展JSON序列化:在Parse.Object上调用JSON.stringify()现在将在输出中包含默认属性“objectId”,“createAt”和“updatedAt”。
答案 1 :(得分:0)
好的,从我所知道的(参见上面的评论),Parse的原生JS API假设您只想序列化对象的属性(即核心数据)而不是实际的元数据,包括ID,创建等等由于他们真的希望你只在他们的系统上存储东西,这是有道理的。但是,您可以编写自己的代码来自行处理。例如,下面的这个方法抓住了两个元数据键(id和createdAt,还有更多,但我只是在测试),并为核心属性创建一个名为“data”的键。
function serializeParseObject(pob) {
var ob = {};
ob.id = pob.id;
ob.createdAt = pob.createdAt;
ob.data = pob.attributes;
return JSON.stringify(ob);
}
我测试了一个示例结果对象,它运行正常。尽管您可能希望添加其他元数据键以实现完整性。 (或许你只关心身份。)