我有一个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 }
]
任何人都可以帮我这样做吗?
答案 0 :(得分:4)
使用forEach
方法(或循环访问数组,如果你想支持IE):
json.forEach(function (e) {
e.count = e['COUNT(*)'];
delete e['COUNT(*)'];
});
答案 1 :(得分:4)
您可以使用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);
答案 2 :(得分:2)
@tewathia's answer现场点亮。
如果您需要支持IE 8或更早版本,请改用:
for(var i = 0, l = json.length; i < l; i++) {
json[i].count = json[i]['COUNT(*)'];
delete json[i]['COUNT(*)'];
}
答案 3 :(得分:1)
枚举数组并创建具有所需属性的新对象。另请注意,您无法直接引用'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);
}
答案 4 :(得分:1)
请找到下面的代码和小提琴:
代码:
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);
}
小提琴: