JSON.stringify () работает с литеральными объектами, такими как:
var myObjectLiteral = {
a : "1a",
b : "1b",
c : 100,
d : {
da : "1da",
dc : 200
}
};
var myObjectLiteralSerialized = JSON.stringify(myObjectLiteral);
myObjectLiteralSerialized назначен,
"{" А ":" 1а " "б": "1b", "С": 100, "г": { "да": "1DA", "DC": 200}}"
как и ожидалось.
Но, если я определю класс с ctor, как это,
function MyClass() {
var a = "1a";
var b = "1b";
var c = 100;
var d = {
da : "1da",
dc : 200
};
};
var myObject = new MyClass;
var myObjectSerialized = JSON.stringify(myObject);
тогда myObjectSerialized устанавливается в пустую строку "".
Я думаю, что причина в том, что версия класса оказывается прототипом экземпляра класса, который делает его свойства «принадлежащими» прототипу, а JSON будет только структурировать реквизиты, принадлежащие объекту экземпляра, myObject.
Есть ли простой способ перевести мои классы в строки JSON без написания нескольких пользовательских кодов?