我有一个像下面这样的JavaScript对象。我想将所有键转换为大写。我正在寻找像
这样的解决方案JSON.stringify(jsonObj).replace();
任何人都可以帮我用实际的正则表达式做同样的事吗?
输入:
{"data": [
{
"id": 4,
"first_name": "eve",
"last_name": "holt",
"avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/marcoramires/128.jpg"
}]}
我期待的输出:
{"DATA": [
{
"ID": 4,
"FIRST_NAME": "eve",
"LAST_NAME": "holt",
"AVATAR": "https://s3.amazonaws.com/uifaces/faces/twitter/marcoramires/128.jpg"
}]}
答案 0 :(得分:4)
使用JSON.stringify
's替换参数:
var obj = {
"data": [{
"id": 4,
"first_name": "eve",
"last_name": "holt",
"avatar": "https://s3.amazonaws.com/uifaces/faces/twitter/marcoramires/128.jpg"
}]
};
console.log(JSON.stringify(obj, function(key, value) {
if (typeof value === 'object' && value && !Array.isArray(value)) {
return Object.keys(value).reduce(function(obj, k) {
obj[k.toUpperCase()] = value[k];
return obj;
}, {});
}
return value;
}, 2));
当然,如果你真的想要一个对象,而不是JSON,那就用
var newObj = Object.keys(obj).reduce(function(o, k) {
o[k.toUpperCase()] = obj[k];
return o;
}, {});