Ответ 1
JSON.stringify
- это функция, которую вы ищете.
Некоторые очень старые браузеры не обеспечивают объект JSON
, но вы можете использовать библиотеку прокладки для этих браузеров.
Я делаю "ручной" запуск через свойства класса 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;
}
});
JSON.stringify
- это функция, которую вы ищете.
Некоторые очень старые браузеры не обеспечивают объект JSON
, но вы можете использовать библиотеку прокладки для этих браузеров.
Я думаю, что вы ищете JSON.stringify()
.
Вы можете использовать stringify, если хотите. Javascript также очень интересен и позволяет передавать тезисы контекста, поэтому вам действительно не нужно определять членов класса так, как вы. Я не знаю, какова ваша конечная цель, но проверьте это:
function foo(context) {
dosomething(context.bar);
}
Вы можете динамически добавлять произвольное число членов с простыми объявлениями, делая контекст объектом JSON таким образом:
context.bar = "hello world";
Таким образом, когда вы передаете "контекст" на сервер, нет никакой реальной необходимости "подкрепить" его (если ваша бэкэнд-структура имеет какой-то синтаксический анализ JSON, который есть).
Изменить: у меня немного не по теме, мне просто не нравится видеть длинные строки параметров в JS