在Node.js中的JSON密钥名称中删除特殊字符

时间:2019-02-26 14:03:47

标签: node.js json

我正在接收一个已解析的excel json,其键名为have。 $,我要删除这些。(我无法更改excel文件中的任何内容)

我尝试解析为字符串并使用正则表达式的第一刻,但是我无法更改任何值。

有什么建议吗?

代码示例:

{"example1.":"sometext.","example2.":"anothertext."}

和一个我不想公开的

{"example1":"sometext.","example2":"anothertext."}

我创建了一个函数来处理此错误,如果有人对此更好的答案感到高兴。

const KeyNameinJson = (json, callback) => {
let newJson = {};
let PropertyNames = Object.getOwnPropertyNames(json);
let async = require('async');
async.each(PropertyNames, (key, callback) => {
    let newKey = key.replace(/[|&;$%@."<>()+,]/g, "");
    newJson[newKey] = json[key];
    callback();
}, () => {
    callback(newJson);
});

};

1 个答案:

答案 0 :(得分:0)

我不确定为什么需要async来完成此任务。能以更简单的方式实现吗?

'use strict';

const obj1 = {"example1.":"sometext.","example2.":"anothertext."};
const obj2 = {};

for (const key of Object.getOwnPropertyNames(obj1)) {
  obj2[key.replace(/[|&;$%@."<>()+,]/g, "")] = obj1[key];
}

console.log(obj2);