我想将json数组键名从大写字母更改为小写键,如下所示
[
{
"_id": "581f2749fb9b6f22308f5063",
"WorkshopId": "1",
"WorkshopTitle": "workshop1",
"WorkshopPrice": "200",
"WorkshopDescription": "workshop1 is a test workshop",
"FloorNumber": "1",
"RoomNumber": "205",
"WorkshopLanguage": "english language",
"LastOnlineRegistrationDate": "15/10/2016",
"WorkshopDate": "1/11/2016",
"WorkshopStartTime": "8:00 AM",
"WorkshopEndTime": "11:00 AM",
"WorkshopRules": "Rules will be mentioned here",
"WorkshopCapacity": "200",
"Speaker": {
"SpeakerName": "John doe",
"AboutSpeaker": "About the speaker"
}
},
{
"_id": "581f27e796915434f44cd678",
"WorkshopId": "2",
"WorkshopTitle": "workshop2",
"WorkshopPrice": "200",
"WorkshopDescription": "workshop2 is a test workshop",
"FloorNumber": "1",
"RoomNumber": "205",
"WorkshopLanguage": "english language",
"LastOnlineRegistrationDate": "15/10/2016",
"WorkshopDate": "1/11/2016",
"WorkshopStartTime": "11:00 AM",
"WorkshopEndTime": "02:00 PM",
"WorkshopRules": "Rules will be mentioned here",
"WorkshopCapacity": "200",
"Speaker": {
"SpeakerName": "Jane doe",
"AboutSpeaker": "Jane doe - About the speaker"
}
}
]
例如,WorkshopId必须更改为workshopid,我在节点js中有一个函数,用于在mongodb中查询集合并返回json:
getWorkshops: function (db, response) {
db.collection('Workshops').find().toArray(function (err, results) {
var convertedArr = [];
//convert the json.
response.send(JSON.stringify(convertedArr));
});
任何帮助?
答案 0 :(得分:1)
这会将对象的键映射为小写:
var upperCased = [
{ ID: 1, NAME: 'Fred' },
{ ID: 2, NAME: 'Sarah' },
{ ID: 3, NAME: 'Joe' },
];
var lowerCased = upperCased.map(function(item) {
var mapped = {};
for (var key in item) {
mapped[key.toLowerCase()] = item[key];
}
return mapped;
});
答案 1 :(得分:0)
您可以使用自定义toJSON()功能:
getWorkshops: function (db, response) {
db.collection('Workshops').find().toArray(function (err, results) {
results.toJSON = function () {
var newArr = [];
for (var obj in this) {
if (!this.hasOwnProperty(obj) || 'toJSON' === obj) continue;
var newObj = {};
for (var prop in this[obj]) {
if (!this[obj].hasOwnProperty(prop)) continue;
newObj[prop.toLowerCase()] = this[obj][prop];
}
newArr.push(newObj);
}
return newArr;
};
response.send(JSON.stringify(results));
});
}