Javascript 如何在nodejs中替换json对象键中的$symbol
我试图从json对象(已解析)中的键中删除$symbol。正常的JS文件,我用这个答案提到,它是工作良好。但是我尝试了nodejs,因为它不能正常工作。最后形成的对象不包含整个修改的值。所以我尝试了问题中发布的原始函数,但是我得到了回调函数NotFound错误。我使用的是node 10.19版本。有没有其他方法可以从json对象中删除$symbol。请给我一个有效的解决方案。实际上,我从yml文件中获取输入,该文件在jenkins中转换为json字符串。在我的代码中,我再次解析了它。如果jenkins中有任何库可以直接将yml文件转换为json,这也会有所帮助Javascript 如何在nodejs中替换json对象键中的$symbol,javascript,node.js,json,jenkins,async.js,Javascript,Node.js,Json,Jenkins,Async.js,我试图从json对象(已解析)中的键中删除$symbol。正常的JS文件,我用这个答案提到,它是工作良好。但是我尝试了nodejs,因为它不能正常工作。最后形成的对象不包含整个修改的值。所以我尝试了问题中发布的原始函数,但是我得到了回调函数NotFound错误。我使用的是node 10.19版本。有没有其他方法可以从json对象中删除$symbol。请给我一个有效的解决方案。实际上,我从yml文件中获取输入,该文件在jenkins中转换为json字符串。在我的代码中,我再次解析了它。如果jenk
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);
var obj_new={'$name':'test1','auth_users':'bajali_s};
log(“obj.blue”,obj.blue.tiger);
var str=obj.blue.tiger;
var res=str.replace(““,”);
控制台日志(“res”,res);
obj.blue.tiger=res;
log(“obj.blue”,obj.blue.$test1);
//const obj1={“example1.”:“sometext.”,“example2.”:“anothertext.”;
常量obj2={};
log(Object.getOwnPropertyNames(obj));
const obj1=obj_new;
console.log(“\uj1”,obj1);
/*for(Object.getOwnPropertyNames(obj1)的常量键){
obj2[key.replace(/[|&;$%@.()+,]/g,“”)=obj1[key];
} */
for(Object.getOwnPropertyNames(obj1)的常量键){
obj2[key.replace(/[|&;$%@.()+,]/g,“”)=obj1[key];
}
console.log(“==”,obj2);
var newjson=JSON.stringify(obj2);
log(newjson);
以下是我如何删除键和值中的额外符号。我浏览了很多网站,并提出了这个程序,希望它能帮助别人。我也让它有点活力
var special_char_keys = ["creationType", "vm_location", "nic_location", "vnetlocation", "rg_location"];
var elements_to_delete = ["blueprint_info", "riglet_info", "quick_links"];
for (var a = elements_to_delete.length; a >= 0; a--) {
delete cloudProperties[elements_to_delete[a]];
}
var Mainkeys = Object.keys(cloudProperties);
console.log("Mainkeys", Mainkeys);
var total_keys_cloudproperties = Mainkeys.length;
for (var j = total_keys_cloudproperties; j > 0; j--) { // main json loop starts
for (const key of Object.getOwnPropertyNames(cloudProperties)) { // getting the main json keys
var obj1 = cloudProperties[key];
var obj2 = {};
var obj3 = {};
var obj4 = {};
var obj5 = {};
var formattedarray = [];
var keys = Object.keys(cloudProperties[key]);
//console.log("inner keys", keys);
var tasksToGo = keys.length;
//console.log("key length",tasksToGo);
for (var i = tasksToGo; i > 0; i--) {
for (const key1 of Object.getOwnPropertyNames(obj1)) {
// var item = obj1.get(key1); // this will get the value in the json based on key
if (Array.isArray(obj1[key1])) { // checking whether the key has value as [{},{}]
// console.log("for jsonarray case");
var temparray = obj1[key1]; // assigning the array to temparray
for (var k = 0; k < temparray.length; k++) { // for loop for getting each object value
var obj3 = temparray[k]; // assigning the inner object to a variable
var Arraykeys = Object.keys(obj3);
// console.log("array inner keys", Arraykeys);
var tasksToGo1 = Arraykeys.length;
for (var t = tasksToGo1; t > 0; t--) {
for (const key2 of Object.getOwnPropertyNames(obj3)) {
if (special_char_keys.includes(key2)) {
var tempvalue = obj3[key2];
var newvalue = tempvalue.replace("_", " ");
// console.log("newvalue", newvalue);
obj4[key2.replace(/[|&;$%@."<>()+,]/g, "")] = newvalue;
} else {
obj4[key2.replace(/[|&;$%@."<>()+,]/g, "")] = obj3[key2];
}
// obj4[key2.replace(/[|&;$%@."<>()+,]/g, "")] = obj3[key2];
}
if (Arraykeys == tasksToGo1) {
break;
}
temparray[k] = obj4;
// console.log("temparray[k] ======================", temparray[k]);
}
}
obj5[key1] = temparray;
cloudProperties[key] = obj5;
// console.log("vm case", cloudProperties[key]);
} else {
// console.log("for normal case");
if (special_char_keys.includes(key1)) {
var tempvalue = obj1[key1];
// console.log(obj1[key1]);
var newvalue = tempvalue.replace("_", " ");
// console.log("newvalue", newvalue);
obj2[key1.replace(/[|&;$%@."<>()+,]/g, "")] = newvalue;
cloudProperties[key] = obj2;
} else {
obj2[key1.replace(/[|&;$%@."<>()+,]/g, "")] = obj1[key1];
cloudProperties[key] = obj2;
}
//obj2[key1.replace(/[|&;$%@."<>()+,]/g, "")] = obj1[key1];
// cloudProperties[key] = obj2;
}
}
}
//console.log("obj2",obj2);
//console.log("+++++++++++++++++",cloudProperties[key]);
}
if (j == total_keys_cloudproperties) {
//console.log("inside break");
break;
}
}
console.log("After removing", cloudProperties);
var special_char_key=[“creationType”、“vm_location”、“nic_location”、“vnetlocation”、“rg_location”];
var elements_to_delete=[“blueprint_info”、“riglet_info”、“quick_links”];
对于(var a=elements到delete.length;a>=0;a--){
删除cloudProperties[elements_to_delete[a]];
}
var Mainkeys=Object.keys(cloudProperties);
控制台日志(“主键”,主键);
var total_keys_cloudproperties=Mainkeys.length;
对于(var j=total_keys_cloudproperties;j>0;j--){//主json循环开始
for(Object.getOwnPropertyNames(cloudProperties))的const key{//获取主json键
var obj1=cloudProperties[key];
var obj2={};
var obj3={};
var obj4={};
var obj5={};
var formattedarray=[];
var keys=Object.keys(cloudProperties[key]);
//console.log(“内部键”,键);
var tasksToGo=keys.length;
//console.log(“键长度”,tasksToGo);
对于(var i=tasksToGo;i>0;i--){
for(Object.getOwnPropertyNames(obj1)的常量键1){
//var item=obj1.get(key1);//这将根据键获取json中的值
if(Array.isArray(obj1[key1]){//检查该键的值是否为[{},{}]
//log(“针对jsonarray案例”);
var temparray=obj1[key1];//将数组分配给temparray
for(var k=0;k0;t--){
for(Object.getOwnPropertyNames(obj3)的常量key2){
if(特殊字符键包括(键2)){
var tempvalue=obj3[key2];
var newvalue=tempvalue.replace(““,”);
//console.log(“newvalue”,newvalue);
obj4[key2.replace(/[|&;$%@.()+,]/g,“”)=newvalue;
}否则{
obj4[key2.替换(/[|&;$%@.()+,]/g,“”)=obj3[key2];
}
//obj4[key2.替换(/[|&;$%@.()+,]/g,“”)=obj3[key2];
}
if(Arraykeys==tasksToGo1){
打破
}
temparray[k]=obj4;
//console.log(“temparray[k]============================”,temparray[k]);
}
}
obj5[key1]=临时数组;
cloudProperties[key]=obj5;
//log(“vm案例”,cloudProperties[key]);
}否则{
//控制台日志(“正常情况下”);
if(特殊字符键包括(键1)){
var tempvalue=obj1[key1];
//console.log(obj1[key1]);
var newvalue=tempvalue.replace(““,”);
//console.log(“newvalue”,newvalue);
obj2[key1.replace(/[|&;$%@.()+,]/g,“”)=newvalue;
cloudProperties[key]=obj2;
}否则{
obj2[key1.替换(/[|&;$%@.()+,]/g,“”)=obj1[key1];