【发布时间】:2022-01-20 15:29:05
【问题描述】:
我想序列化一个对象o,它有一个名为a 的方法。该对象还包含一个变量,其名称为_a。
我现在想将此对象解析为 JSON 字符串。但是 JSON 看起来像这样:
{
"_a": "",
...
}
问题
有没有办法舒适地删除/替换 _ 字符(或任何字符)。
我尝试过的
- JSON.stringify() 方法的重命名参数。
1.1。没用,因为您只能返回更改后的值而不能返回键。
- 迭代对象的所有键,删除它们并创建一个新的重命名键,然后分配值(参见下面的代码)。
2.1。当有“子对象”时,这可行,但不是真正可读且令人讨厌。
Object.keys(o).forEach(key => {
Object.defineProperty(o, key.replace("_", ""),
Object.getOwnPropertyDescriptor(o, key));
delete o[key];
});
【问题讨论】:
-
正如你所说的对象有一个名为
a的方法和一个名为_a的属性,从属性名称中删除_是可能的,但要么方法将继续存在,要么属性。
标签: javascript node.js json