我有下面的類結構...JSON.stringify序列只有打字稿干將
export abstract class PersonBase {
public toJSON(): string {
let obj = Object.assign(this);
let keys = Object.keys(this.constructor.prototype);
obj.toJSON = undefined;
return JSON.stringify(obj, keys);
}
}
export class Person extends PersonBase {
private readonly _firstName: string;
private readonly _lastName: string;
public constructor(firstName: string, lastName: string) {
this._firstName = firstName;
this._lastName = lastName;
}
public get first_name(): string {
return this._firstName;
}
public get last_name(): string {
return this._lastName;
}
}
export class DetailPerson extends Person {
private _address: string;
public constructor(firstName: string, lastName: string) {
super(firstName, lastName);
}
public get address(): string {
return this._address;
}
public set address(addy: string) {
this._address = addy;
}
}
我想獲得的toJSON()輸出所有從完整對象層次的吸氣劑(不包括私人性質) ...
所以,如果我有一個DetailPerson實例,我叫.toJSON()我想看到下面的輸出...
{ 「地址」: 「有些地址」, 「FIRST_NAME」 :「我的名字」, 「last_name」:「我的姓氏」 }
我使用了本文中的解決方案之一,但它並未解決我的特殊使用案例...我沒有在輸出中獲取所有獲取者。
Using JSON.stringify in conjunction with TypeScript getter/setter
我需要什麼改變這裏得到的結果我找的?
有你定義的方法'toJsonString'雙方的'Person'和'DetailPerson'類,如你所鏈接的帖子所示?我沒有看到他們在您發佈的代碼中定義。 – gforce301
請提供[mcve],顯示您正在嘗試解決的確切問題。 –
修改。 – Daz