我想知道如何將包含屬性和模型的骨幹集合的JSON序列化到JSON中。串行化到JSON中包含屬性的Backbone集合
所以每舉例來說,如果我有這樣一個集合:
var myCollection = Backbone.Collection.extend({
initialize: function (attr, options) {
this.property = options.property;
}
});
當試圖與JSON.stringify(myCollection)將函數字符串化,該字符串化將調用在骨幹集合對象定義的對象的toJSON方法。骨幹集合定義該方法如下:
toJSON : function() {
return this.map(function(model){ return model.toJSON(); });
}
這意味着,只有包括在集合中的模型將被包括在結果JSON對象但不集合的屬性我先前所定義。
你知道這可以實現嗎?
謝謝。
編輯:也許不是在我原來的問題不夠清楚,我知道我可以覆蓋的toJSON方法我的問題是究竟如何做才能達到我需要在一般情況下(不僅是這個特定的屬性,但想象我有另一個包含其他屬性的集合,並且它們都從一個baseCollection對象繼承。更多我想知道如何將該JSON對象恢復到主幹原始狀態(不確定是否通過創建傳遞JSON的新集合對象在構造函數的參數中會用這個屬性來實現)
在這種情況下,我不希望將其保存在服務器上,但暫時將它保存在localStorage的。你所描述的是我暴露的問題,我不確定如何重寫toJSON方法來完成我所需要的。 –
@JavierTarazaga將它保存到'localStorage'不會對你有任何好處,除非你還計劃重寫'JSON.parse'方法。即使你重寫了集合上的'toJSON'方法,並設法將一個無效的JSON字符串存儲到'localStorage',你仍然有*檢索*並且稍後解析該字符串的問題。 – idbehold