【发布时间】:2020-09-04 08:43:57
【问题描述】:
我正在尝试从 json 对象(已解析)中的键中删除 $ 符号。我使用Remove special character in json key name in nodejs 这个答案提到的普通 JS 文件,它工作正常。但是我在nodejs中尝试过,因为异步它不能正常工作。最后形成的对象不包含整个修改值。所以我尝试了问题中发布的原始函数,但我得到回调函数未找到错误。我正在使用节点 10.19 版本。有没有其他方法可以从我的 json 对象中删除 $ 符号。请给我一个可行的解决方案。实际上,我正在从 yml 文件中获取输入,该文件在 jenkins 中被转换为 json 字符串。再次在我的代码中我已经解析了它。如果有任何库可以直接将 yml 文件转换为 jenkins 中的 json,那也会有所帮助。
var obj = {
'blue':{
'test:"value',
'$test1':'value1',
'tiger':'cheetah_growl',
'$jan':'cool'
}
}
普通的js文件
var obj_new = { '$name': 'test1', '$auth_users': 'bajali_s' };
console.log("obj.blue",obj.blue.tiger);
var str = obj.blue.tiger;
var res = str.replace("_", " ");
console.log("res",res);
obj.blue.tiger = res;
console.log("obj.blue",obj.blue.$test1);
//const obj1 = {"example1.":"sometext.","example2.":"anothertext."};
const obj2 = {};
console.log(Object.getOwnPropertyNames(obj));
const obj1 = obj_new;
console.log("__",obj1);
/* for (const key of Object.getOwnPropertyNames(obj1)) {
obj2[key.replace(/[|&;$%@."<>()+,]/g, "")] = obj1[key];
} */
for (const key of Object.getOwnPropertyNames(obj1)) {
obj2[key.replace(/[|&;$%@."<>()+,]/g, "")] = obj1[key];
}
console.log("==",obj2);
var newjson = JSON.stringify(obj2);
console.log(newjson);
【问题讨论】:
-
取出不相关的代码。顶部的 sn-p 也有语法错误。
-
你的代码很难理解。为什么你有这么多
obj-变量?你能举一个更简单的小例子来说明你的问题吗?
标签: javascript node.js json jenkins async.js