我的JSON文件格式如下:
[{"key/1":"Value1", "key/2":"Value2" },
{"key/1.1":"Value1.1", "key/2.1":"Value2.1" },
{"key/1.2":"Value1.2", "key/2.2":"Value2.2" },
{"key/1.3":"Value1.3", "key/2.3":"Value2.3" }]
我的要求是搜索上述JSON格式的所有exixting密钥名称,并将斜杠(" /")字符重新转换为某个其他字符,以使新的JSON文件更改为具有新替换字符的密钥名称
请帮忙
由于
答案 0 :(得分:0)
使用this function,您可以克隆该对象。只需稍微修改它就可以动态替换关键斜杠。
打开控制台并运行
function replaceSlashInKeys(obj) {
if(obj == null || typeof(obj) != 'object') return obj;
var temp = obj.constructor();
for(var key in obj) {
if(obj.hasOwnProperty(key)) {
// Replace any slash with an underscore (in the key)
temp[key.replace(/\//g, '_')] = replaceSlashInKeys(obj[key]);
}
}
return temp;
}
// Example usage
var test = [{"key/1":"Value1", "key/2":"Value2" },{"key/1.1":"Value1.1", "key/2.1":"Value2.1" },{"key/1.2":"Value1.2", "key/2.2":"Value2.2" },{"key/1.3":"Value1.3", "key/2.3":"Value2.3" }];
// Got slashes
console.log(test);
// Replace them
test = replaceSlashInKeys(test);
// Got underscores
console.log(test);

答案 1 :(得分:0)
使用reduce函数的另一种方法可能是:
for (var i = 0; i < test.length; i++){
Object.keys(test[i]).reduce(function (a, b) {
test[i][b.toString().replace('/', '-')] = test[i][b];
delete test[i][b];
}, 1);
}
的jsfiddle: