更改JSON对象

我有一个JSON对象

 [ { serial: 5456454, 'COUNT(*)': 1 }, { serial: 563535434, 'COUNT(*)': 1 }, { serial: 576757575, 'COUNT(*)': 1 }, { serial: 785785758, 'COUNT(*)': 1 }, { serial: 2147483647, 'COUNT(*)': 8 } ] 

而我的要求是改变/转换为

 [ { serial: 5456454, count: 1 }, { serial: 563535434, count: 1 }, { serial: 576757575, count: 1 }, { serial: 785785758, count: 1 }, { serial: 2147483647, count: 8 } ] 

任何人都可以帮助我做到这一点?

您可以使用EcmaScript 5的MAP来做这件事

 var a = [ { serial: 5456454, 'COUNT(*)': 1 }, { serial: 563535434, 'COUNT(*)': 1 }, { serial: 576757575, 'COUNT(*)': 1 }, { serial: 785785758, 'COUNT(*)': 1 }, { serial: 2147483647, 'COUNT(*)': 8 } ]; a = a.map(function(t){ return {serial: t.serial, count: t["COUNT(*)"]}; }); console.log(a); 

使用forEach方法(或者通过数组循环,如果你想支持IE):

 json.forEach(function (e) { e.count = e['COUNT(*)']; delete e['COUNT(*)']; }); 

DEMO

@ tewathia的答案是现货。

如果您需要支持IE 8或更早版本,请改用此方法:

 for(var i = 0, l = json.length; i < l; i++) { json[i].count = json[i]['COUNT(*)']; delete json[i]['COUNT(*)']; } 

演示

枚举数组并创build一个具有所需属性的新对象。 另外请注意,您不能直接引用“COUNT(*)”属性

 var newJsonArray = []; for(var i = 0; i < jsonArray.length; i++) { var obj = jsonArray[i]; var newObj = {}; newObj.serial = obj['serial']; newObj.count = obj['COUNT(*)']; newJsonArray.push(newObj); } 

请在下面find代码和小提琴:

码:

 var b= []; for(var i = 0;i<a.length-1;i++){ var bElement = {}; bElement.serial = a[i].serial; bElement.count = a[i]["COUNT(*)"]; b.push(bElement); } 

小提琴:

http://jsfiddle.net/6Wjn3/