Я хочу сериализовать javascript объекты, и я нашел библиотеку serialijse , которая выглядит очень хорошо. У него есть возможность игнорировать поля, помеченные как «не сериализировать».
Прежде чем я углублюсь, я express рассмотрю вопрос в двух частях, чтобы вы могли быстро решить, нужно ли вам читать остальные этого поста.
- Как вы скажете serialijse игнорировать поле?
- Может кто-нибудь объяснить выражение javascript "obj.constructor.serialijseOptions"
Я не эксперт по javascript, поэтому я не понимаю, что или как я добавляю serialijseOptions в поле конструктора объекта.
Но это именно то, что serialijse ищет, чтобы решить, что игнорировать. Это объект с полем с именем «ignored», значением которого является массив строк, идентифицирующих по имени поля, которые следует игнорировать.
Я могу заставить его работать, написав следующий код Typescript:
class Test {
_save : Array<string|null>;
_dontSave : number;
constructor() {
this._save = Array(10).fill(null);
this._dontSave = 12;
Test.constructor.prototype.serialijseOptions
= { ignored : ['_dontSave'] };
}
}
Но это помещает serialijseOptions в ALL объекты - не только Test
FYI, соответствующий код из serialijse следующий («объект» является аргументом для функция и содержит сериализуемый объект):
var options = global_options || {};
if (object.constructor && object.constructor.serialijseOptions) {
options = merge_options(options,object.constructor.serialijseOptions);
}
if (options.ignored) {