json.stringify 对象并重命名 json 中的变量

Posted

技术标签:

【中文标题】json.stringify 对象并重命名 json 中的变量【英文标题】:json.stringify object and rename variables in json 【发布时间】: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的属性,从属性名称中删除_是可能的,但要么方法将继续存在,要么属性。 【参考方案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 的方法,而您的方法只有其中一个能够存活。

以上是关于json.stringify 对象并重命名 json 中的变量的主要内容,如果未能解决你的问题,请参考以下文章

Ajax

Jquery一些实用函数

console.log 如何打印对象

将 freemarker 对象呈现为 JSON 的最简单方法是啥?

JSON对象的解析,JSON.stringify()/JSON.parse()的用法

如何 JSON.stringify 对象数组