Кто-нибудь знает, как заставить javascript библиотека serialijse игнорировать поля - PullRequest
0 голосов
/ 10 марта 2020

Я хочу сериализовать javascript объекты, и я нашел библиотеку serialijse , которая выглядит очень хорошо. У него есть возможность игнорировать поля, помеченные как «не сериализировать».

Прежде чем я углублюсь, я express рассмотрю вопрос в двух частях, чтобы вы могли быстро решить, нужно ли вам читать остальные этого поста.

  1. Как вы скажете serialijse игнорировать поле?
  2. Может кто-нибудь объяснить выражение 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) {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...