如何在javascript中将所有JSON键转换为小写?
实际上,我的要求是将整个JSONonly键转换为小写。我试着只转换JSON的第一个键,而不是转换整个键。请查看fiddle链接或提供其他方法 谢谢如何在javascript中将所有JSON键转换为小写?,javascript,jquery,angularjs,json,Javascript,Jquery,Angularjs,Json,实际上,我的要求是将整个JSONonly键转换为小写。我试着只转换JSON的第一个键,而不是转换整个键。请查看fiddle链接或提供其他方法 谢谢 var obj = { "Collections": { "conTainer": { "rowSet": [{ "containerIsArchived": "Null", "containerOrderNo": "26", "versionNum": "0",
var obj = {
"Collections": {
"conTainer": {
"rowSet": [{
"containerIsArchived": "Null",
"containerOrderNo": "26",
"versionNum": "0",
"containerGlobalUniqueId": "Null",
"containerIsTenantBased": "true",
"containerCreatedBy": "user",
"containerIsDeleted": "false",
"containerTenantId": "292FEC76-5F1C-486F-85A5-09D88096F098",
"containerLayoutId": "4e13dfcd-cd3b-4a29-81bd-0f73cf9577cf",
"containerApplicationId": "0000000-0000-0000-0000-000000000000",
"containerIsActive": "Null",
"containerHeaderText": "apitest19feb16",
"containerId": "3745b273-c48d-4c94-b576-3d7aac2f7ac6",
"containerCreatedUTCDate": "2016-02-19 17:57:51.0"
}]
}
}
};
convertKeysToCamelCase(obj);
function convertKeysToCamelCase(obj) {
if (!obj || typeof obj !== "object") return null;
if (obj instanceof Array) {
return $.map(obj, function(value) {
return convertKeysToCamelCase(value);
});
}
var newObj = {};
$.each(obj, function(key, value) {
key = key.charAt(0).toLowerCase() + key.slice(1);
newObj[key] = value;
});
console.log(newObj);
return newObj;
};
这里是Fiddle链接:请尝试下面的代码
function ConvertKeysToLowerCase(obj) {
var output = {};
for (i in obj) {
if (Object.prototype.toString.apply(obj[i]) === '[object Object]') {
output[i.toLowerCase()] = ConvertKeysToLowerCase(obj[i]);
}else if(Object.prototype.toString.apply(obj[i]) === '[object Array]'){
output[i.toLowerCase()]=[];
output[i.toLowerCase()].push(ConvertKeysToLowerCase(obj[i][0]));
} else {
output[i.toLowerCase()] = obj[i];
}
}
return output;
};
请尝试下面的代码
function ConvertKeysToLowerCase(obj) {
var output = {};
for (i in obj) {
if (Object.prototype.toString.apply(obj[i]) === '[object Object]') {
output[i.toLowerCase()] = ConvertKeysToLowerCase(obj[i]);
}else if(Object.prototype.toString.apply(obj[i]) === '[object Array]'){
output[i.toLowerCase()]=[];
output[i.toLowerCase()].push(ConvertKeysToLowerCase(obj[i][0]));
} else {
output[i.toLowerCase()] = obj[i];
}
}
return output;
};
您需要递归到对象中,以便覆盖较低级别的键。要做到这一点,最好先创建对象的副本,然后进行修改,如下所示
// create copy of object
var newObj = JSON.parse(JSON.stringify(obj));
convertKeysToCamelCase(newObj);
function convertKeysToCamelCase(obj) {
if (!obj || typeof obj !== "object") return null;
if (obj instanceof Array) {
return $.map(obj, function(value) {
return convertKeysToCamelCase(value);
});
}
// manipulates the object being passed in
$.each(obj, function(key, value) {
// delete existing key
delete obj[key];
key = key.charAt(0).toLowerCase() + key.slice(1);
obj[key] = value;
convertKeysToCamelCase(value);
});
return obj;
};
Fiddle-您需要递归到对象中,以便覆盖较低级别的键。要做到这一点,最好先创建对象的副本,然后进行修改,如下所示
// create copy of object
var newObj = JSON.parse(JSON.stringify(obj));
convertKeysToCamelCase(newObj);
function convertKeysToCamelCase(obj) {
if (!obj || typeof obj !== "object") return null;
if (obj instanceof Array) {
return $.map(obj, function(value) {
return convertKeysToCamelCase(value);
});
}
// manipulates the object being passed in
$.each(obj, function(key, value) {
// delete existing key
delete obj[key];
key = key.charAt(0).toLowerCase() + key.slice(1);
obj[key] = value;
convertKeysToCamelCase(value);
});
return obj;
};
小提琴-稍微修改一下下面的答案,使其更易于阅读
function convertKeysToCamelCase(obj) {
var output = {}
for (var i in obj) {
var current = obj[i]
if (isObject(current) || isArray(current)) {
output[i.toLowerCase()] = convertKeysToCamelCase(current);
} else {
output[i.toLowerCase()] = current;
}
}
return output;
};
function isObject(obj) {
return typeof obj === 'object'
}
function isArray(arr) {
return Array.isArray(arr)
}
console.log(JSON.stringify(convertKeysToCamelCase(input)));
对下面的答案稍加修改,使其更易于阅读
function convertKeysToCamelCase(obj) {
var output = {}
for (var i in obj) {
var current = obj[i]
if (isObject(current) || isArray(current)) {
output[i.toLowerCase()] = convertKeysToCamelCase(current);
} else {
output[i.toLowerCase()] = current;
}
}
return output;
};
function isObject(obj) {
return typeof obj === 'object'
}
function isArray(arr) {
return Array.isArray(arr)
}
console.log(JSON.stringify(convertKeysToCamelCase(input)));
你可以从@Christophe's获得一份推荐信 如果您不明白,以下是代码: js:
你可以从@Christophe's获得一份推荐信 如果您不明白,以下是代码: js:
这里有一个想法,我希望它有用
var obj = {
"containerIsArchived": "Null",
"containerOrderNo": "26",
"versionNum": "0",
"containerGlobalUniqueId": "Null",
"containerIsTenantBased": "true",
"containerCreatedBy": "user",
"containerIsDeleted": "false",
"containerTenantId": "292FEC76-5F1C-486F-85A5-09D88096F098",
"containerLayoutId": "4e13dfcd-cd3b-4a29-81bd-0f73cf9577cf",
"containerApplicationId": "0000000-0000-0000-0000-000000000000",
"containerIsActive": "Null",
"containerHeaderText": "apitest19feb16",
"containerId": "3745b273-c48d-4c94-b576-3d7aac2f7ac6",
"containerCreatedUTCDate": "2016-02-19 17:57:51.0"
};
for(var i in obj){
obj[i.toLowerCase()] = obj[i];
delete obj[i];
}
console.log(obj);
最后一条语句以小写形式打印包含所有键的对象。我们的想法是创建一个新密钥(任何给定密钥的小写版本),然后去掉旧密钥。这里有一个想法,我希望它有用
var obj = {
"containerIsArchived": "Null",
"containerOrderNo": "26",
"versionNum": "0",
"containerGlobalUniqueId": "Null",
"containerIsTenantBased": "true",
"containerCreatedBy": "user",
"containerIsDeleted": "false",
"containerTenantId": "292FEC76-5F1C-486F-85A5-09D88096F098",
"containerLayoutId": "4e13dfcd-cd3b-4a29-81bd-0f73cf9577cf",
"containerApplicationId": "0000000-0000-0000-0000-000000000000",
"containerIsActive": "Null",
"containerHeaderText": "apitest19feb16",
"containerId": "3745b273-c48d-4c94-b576-3d7aac2f7ac6",
"containerCreatedUTCDate": "2016-02-19 17:57:51.0"
};
for(var i in obj){
obj[i.toLowerCase()] = obj[i];
delete obj[i];
}
console.log(obj);
最后一条语句以小写形式打印包含所有键的对象。我们的想法是创建一个新密钥(任何给定密钥的小写版本),然后删除旧密钥。请将相关代码添加到您的问题中,而不仅仅是一个fiddle链接。您是否收到一条错误消息,告诉您将代码放入问题中,而不仅仅是链接到JS fiddle?您需要将代码放在问题中,而不仅仅是说JS FIDLE的链接就是代码。检查这个out@DipaliVasani…在我的情况下,JSON与此不同。它在数组中有一个对象。检查此输出请将相关代码添加到您的问题中,而不仅仅是fiddle链接您是否收到错误消息,告诉您将代码放入问题中,而不仅仅是链接到JS fiddle?您需要将代码放在问题中,而不仅仅是说JS FIDLE的链接就是代码。检查这个out@DipaliVasani…在我的情况下,JSON与此不同。它在数组中有一个对象。选中此复选框将只更改为小写,而不是toUpperCase,以响应问题,并将函数convertKeysLowercase的名称更改为true。我已经改变了。多谢各位much@MarioChueca-实际上,我们的编码中有一个小问题。它将一切都转换为对象。我需要一个实际的JSON格式,因为它是键小写。这里的问题是行集是一个数组,它正在更改为object而不是object的数组。将只更改为Lowercase而不是toUpperCase,以响应问题,并将函数ConvertKeysLowercase的名称更改为true。我已经改变了。多谢各位much@MarioChueca-实际上,我们的编码中有一个小问题。它将一切都转换为对象。我需要一个实际的JSON格式,因为它是键小写。这里的问题是行集是一个数组,它正在更改为object而不是object的数组。