Подтвердить что ты не робот

Как JSONify свойства объекта javascript

Я делаю "ручной" запуск через свойства класса 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;
        }
});
4b9b3361

Ответ 3

Вы можете использовать stringify, если хотите. Javascript также очень интересен и позволяет передавать тезисы контекста, поэтому вам действительно не нужно определять членов класса так, как вы. Я не знаю, какова ваша конечная цель, но проверьте это:

function foo(context) { 
    dosomething(context.bar);
}

Вы можете динамически добавлять произвольное число членов с простыми объявлениями, делая контекст объектом JSON таким образом:

context.bar = "hello world";

Таким образом, когда вы передаете "контекст" на сервер, нет никакой реальной необходимости "подкрепить" его (если ваша бэкэнд-структура имеет какой-то синтаксический анализ JSON, который есть).

Изменить: у меня немного не по теме, мне просто не нравится видеть длинные строки параметров в JS