我正在手动遍历我的JavaScript类的属性以形成JSON,如下所示。这感觉很笨拙,我想学习如何自动地做到这一点,这样如果我添加或删除任何属性,就不必再处理“toJson”函数。
有没有热心人可以指导我如何调整下面的“toJson”函数以实现此目的?
提前感谢您。
/* Using Simple JavaScript Inheritance
* By John Resig http://ejohn.org/
* MIT Licensed.*/
var LogEntry = Class.extend({
init: function (_conferenceId, _tokenId, _logType, _logValue) {
this.dato = new Date();
this.logValue = _logValue;
this.logType = _logType;
this.conferenceId = _conferenceId;
this.tokenId = _tokenId;
},
toJson: function () {
// ?
var jsonStringBuilder = '{ ';
jsonStringBuilder += '"dato": ' + this.dato.toString() + ',';
jsonStringBuilder += '"conferenceId": ' + this.conferenceId + ',';
if (this.tokenId== null) {
jsonStringBuilder += '"tokenId":null,';
}
else {
jsonStringBuilder += '"tokenId": ' + _tokenId + ',';
}
jsonStringBuilder += '"logValue": ' + this.logValue + ',';
jsonStringBuilder += '"logType": ' + this.logType;
jsonStringBuilder += '}';
return jsonStringBuilder;
}
});
toJson: function () { return JSON.stringify(this); }
返回null。 - Morten NørgaardtoJSON
。如果存在,JSON.stringify
调用 对象的toJSON
方法,然后序列化该函数返回的对象。如果toJSON
不存在,则stringify
只是简单地序列化对象。 - josh3736JSON.stringify
也能正常工作。 - josh3736