как игнорировать свойство для сериализации в JSON в Angular 7 - PullRequest
0 голосов
/ 10 марта 2019

У меня есть свойство навигации в иерархической структуре модели, которое вызывает циклическую ошибку зависимости в angular 7 во время сериализации.

export class MyClass {
   // this property should be ignored for JSON serialization
   parent: MyClass;

   childList: MyClass[];
}

Интересно, существует ли какое-либо встроенное решение (например, такой декоратор для Jackson: @JsonBackReference), чтобы игнорировать родительское свойство при сериализации (например, во время http.put).

Большое спасибо за любые советы!

1 Ответ

2 голосов
/ 10 марта 2019

если вы предпочитаете обрабатывать это с помощью декоратора, вы можете создать свой собственный, например, такой:

function enumerable(value: boolean) {
    return function (target: any, propertyKey: string) {
        let descriptor = Object.getOwnPropertyDescriptor(target, propertyKey) || {};
        if (descriptor.enumerable != value) {
            descriptor.enumerable = value;
            Object.defineProperty(target, propertyKey, descriptor)
        }
    };
}

, а затем пометить свойство как не перечисляемое, как этот

class MyClass {
   @enumerable(false)
   parent: MyClass;
}

другой вариантпереопределить toJSON поведение

MyClass {
...
public toJSON() {
 const {parent, ...otherProps} = this;
 return otherProps;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...