Is there a way to change all JSON key names to capital letter ?
eg:
{"name":"john","Age":"21","sex":"male","place":{"state":"ca"}}
and need to be converted as
{"NAME":"john","AGE":"21","SEX":"male","PLACE":{"STATE":"ca"}}
From your comment,
eg like these will fail for the inner keys {"name":"john","Age":"21","sex":"male","place":{"state":"ca"}}
You may need to use recursion for such cases. See below,
var output = allKeysToUpperCase(obj);
function allKeysToUpperCase(obj) {
var output = {};
for (i in obj) {
if (Object.prototype.toString.apply(obj[i]) === '[object Object]') {
output[i.toUpperCase()] = allKeysToUpperCase(obj[i]);
} else {
output[i.toUpperCase()] = obj[i];
}
}
return output;
}
Output
A simple loop should do the trick,
var output = {};
for (i in obj) {
output[i.toUpperCase()] = obj[i];
}
You can't change a key directly on a given object, but if you want to make this change on the original object, you can save the new uppercase key and remove the old one:
function changeKeysToUpper(obj) { var key, upKey; for (key in obj) { if (obj.hasOwnProperty(key)) { upKey = key.toUpperCase(); if (upKey !== key) { obj[upKey] = obj[key]; delete(obj[key]); } // recurse if (typeof obj[upKey] === "object") { changeKeysToUpper(obj[upKey]); } } } return obj; } var test = {"name": "john", "Age": "21", "sex": "male", "place": {"state": "ca"}, "family": [{child: "bob"}, {child: "jack"}]}; console.log(changeKeysToUpper(test));
FYI, this function also protects again inadvertently modifying inherited enumerable properties or methods.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.