我在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密钥写入字符串输出之前手动对其进行修改。我很好奇是否有更简单的解决方案。
这是一个JSFiddle,它演示了当前的行为。
不,您不能JSON.stringify
使用getter / setter名称代替属性名称。
但是您可以执行以下操作:
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}
本文向大家介绍JSON.parse()和JSON.stringify()使用介绍,包括了JSON.parse()和JSON.stringify()使用介绍的使用技巧和注意事项,需要的朋友参考一下 parse用于从一个字符串中解析出json对象,如 结果: 注意:单引号写在{}外,每个属性名都必须用双引号,否则会抛出异常。 stringify()用于从一个对象解析出字符串,如 结果: PS:关于js
问题内容: 大约几个小时前,我在Stack Overflow上询问了有关如何将char []转换为MD5哈希的方法。 Neil Smithline建议我使用BCrypt,但不能将其与char []一起使用。 我使用char []来存储从登录表单中检索到的密码的原因是因为仅支持char []。 当前,我正在尝试使用上面的代码生成哈希,但是由于变量passwordCars的类型为char [],因此不
问题内容: Node.js非常适合我们的Web项目,但是很少有需要Python的计算任务。我们已经为他们准备了Python代码。我们非常关心速度,如何以异步非阻塞方式从node.js调用Python“工人”的最优雅方法是什么? 问题答案: 对于node.js和Python服务器之间的通信,如果两个进程都在同一服务器上运行,则我将使用Unix套接字,否则将使用TCP / IP套接字。对于封送处理协议
问题内容: 我正在尝试在我的应用程序中通过turbolinks使用Angularjs框架。页面更改后,请勿初始化新的事件监听器。有什么办法可以使其工作吗?提前致谢! 问题答案: AngularJS与Turbolinks Turbolink 和 AnguluarJS 都可以用来使Web应用程序更快地响应,在某种意义上,响应用户交互,网页上发生了某些事情,而无需重新加载和重新呈现整个页面。 它们在以下
问题内容: 我希望能够在具有许多s的复杂SQL查询中使用PostgreSQL中的函数。这是查询示例: 我想在这里删除该表,因为我的表具有一个名为 taglist* 的 整数数组 字段,该字段由所有链接的tag id组成。 * 我尝试了以下操作: 此方法有效,但带来的结果与第一个查询不同。 所以我要做的是在查询中使用的结果来补偿表。 我怎样才能做到这一点? UPDATE: 与提及的标记ID的列表相同
本文向大家介绍使用JSON.stringify()显示传播算子结果?,包括了使用JSON.stringify()显示传播算子结果?的使用技巧和注意事项,需要的朋友参考一下 使用Spread Operator,允许将表达式扩展为多个参数,元素,变量等。 您可以使用JSON.stringify()将JavaScript对象转换为字符串。在这里,我们的目标是对details1和details2使用传播运