【问题标题】:json.stringify object and rename variables in jsonjson.stringify 对象并重命名 json 中的变量
【发布时间】:2022-01-20 15:29:05
【问题描述】:

我想序列化一个对象o,它有一个名为a 的方法。该对象还包含一个变量,其名称为_a

我现在想将此对象解析为 JSON 字符串。但是 JSON 看起来像这样:

{
    "_a": "",
    ...
}

问题

有没有办法舒适地删除/替换 _ 字符(或任何字符)。

我尝试过的

  1. JSON.stringify() 方法的重命名参数。
    1.1。没用,因为您只能返回更改后的值而不能返回键。
  2. 迭代对象的所有键,删除它们并创建一个新的重命名键,然后分配值(参见下面的代码)。
    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


【解决方案1】:

这样的东西对你有用吗:

let obj = {
  "_a": "",
  "b": "Test"
}

let result = Object.entries(obj).reduce((acc, [key, value]) => {
  let newKey = key.replace('_', '')
  acc[newKey] = value
  return acc
}, {})

console.log(result)

【讨论】:

  • 但该对象也有一个名为 _a 的方法,而您的方法只有其中一个能够存活。
猜你喜欢
  • 2016-12-02
  • 1970-01-01
  • 1970-01-01
  • 2019-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-18
相关资源
最近更新 更多