将JSON.stringify与TypeScript getter / setter结合使用
发布时间:2020-12-16 19:48:36 所属栏目:百科 来源:网络整理
导读:我在TypeScript中使用getter / setter访问器.由于变量和方法不可能具有相同的名称,因此我开始使用较低的短划线为变量添加前缀,如许多示例中所示: private _major: number;get major(): number { return this._major;}set major(major: number) { this._majo
我在TypeScript中使用getter / setter访问器.由于变量和方法不可能具有相同的名称,因此我开始使用较低的短划线为变量添加前缀,如许多示例中所示:
private _major: number; get major(): number { return this._major; } set major(major: number) { this._major = major; } 现在,当我使用JSON.stringify()方法将对象转换为JSON字符串时,它将使用变量名作为键:_major. 由于我不希望JSON文件的所有键都以下划线作为前缀,因此有可能使TypeScript使用getter方法的名称(如果可用)吗?或者有没有其他方法来使用getter / setter方法,但仍然产生干净的JSON输出? 我知道有些方法可以在将JSON密钥写入字符串输出之前手动修改它们.如果有更简单的解决方案,我很好奇. Here is a JSFiddle,它演示了当前的行为.
不,您不能使用getter / setter名称而不是属性名称来使用JSON.stringify.
但你可以这样做: class Version { private _major: number; get major(): number { return this._major; } set major(major: number) { this._major = major; } toJsonString(): string { let json = JSON.stringify(this); Object.keys(this).filter(key => key[0] === "_").forEach(key => { json = json.replace(key,key.substring(1)); }); return json; } } let version = new Version(); version.major = 2; console.log(version.toJsonString()); // {"major":2} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ajaxFileUpload带参数提交
- postgresql – 如何在postgresSQL中的jsonb值的array_agg中
- ruby-on-rails – 剪纸可以从S3桶中读取照片几何吗?
- TexturePacker 到 flash 的简单使用
- objective-c – iOS 6 UIInterfacePortrait ONLY视图控制器
- 如何将负数转换成正数由| =运算符在C#中?
- xml – Chrome是否可以对本地文件执行XSL转换?
- vb.net – 将选定的列从一个DataTable复制到另一个DataTabl
- 三维图形原理 为什么我的模型老破面/缺面
- flex中parentDocument parent owner 实现 drag