Пользовательский объект в JSON, а затем обратно в пользовательский объект?
Я видел очень похожие вопросы, но я могуЯ не могу решить, ответили ли они четко - возможно, яизвиняюсь.
Я хочу иметь удобство (и ясность) своего собственного объекта, назвать егоCardboardBox()
, Это победилоне содержат код, только данные. Я хочу записать это в базу данных и прочитать позже, но, очевидно, это типObject()
когда это'с читай обратно. Все, что я могу придумать, чтобы узнать, что это было:
type
что я установил в CARDBOARD_BOXСоздать новыйCarbardBox()
и использовать функцию (в поле), чтобы скопировать свойстваObject()
к новомуCardboardBox()
объектЕсть ли лучший способ сделать это? Я'Я уверен, что могу изменитьфактический тип.
function CardboardBox() {
this.type = "CARDBOARD_BOX"
this.name = "No set";
this.populate = new function(obj) {
// populate this object with obj properties
}
var box = new CarboardBox(); // CarboardBox
box.name = "My Box";
send = JSON.stringyfy(box);
.
.
.
obj = JSON.parse(send); // Object
if (obj.type == "CARDBOARD_BOX") {
savedBox = new CardboardBox();
savedBox.populate(obj);
}
Заранее спасибо ... Стив
[править] Мой тестовый код.
function CardboardBox(n) {
this.name = n;
}
var box = new CardboardBox("My Box");
send = JSON.stringify(box); // JSON CarboardBox()
obj = JSON.parse(send, function fn(obj) { // Object() returned
log("OB: "+obj.type);
return obj.type === 'CardboardBox' ? new CardboardBox(obj) : CardboardBox;
});
console.log(obj);
Выход:
OB: undefined utils.js:40
OB: undefined utils.js:40
function CardboardBox(n) {
this.name = n;
}