更改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); }
小提琴: