0

到目前为止,这是我的代码:我正在尝试使用 GAJSON 对象的属性创建一个名为 dataJSON 的新 JSON 对象。但是,当我尝试遍历 GAJSOn 对象时,我只得到要添加到数组中的最后一个元素。

 var GAstring ='{"data":[{"bounceRate": "4","country":"Denmark"},{"bounceRate":
 "3","country":"Spain"},{"bounceRate":"6","country":"Romania"},
 {"bounceRate":"1","country":"Bulgaria"},{"bounceRate":"0","country":"Lithuania"},  
 {"bounceRate":"2","country":"Norway"}]}';
 var GAJSON=JSON.parse(GAstring);
 var viewJSON = {
    data:[]
 };
 var dataJSON ={};
 for(var i =0; i<GAJSON.data.length; i++) {
     dataJSON["bounceRate"] = GAJSON.data[i].bounceRate;
     dataJSON["country"] = GAJSON.data[i].country;
 }
 viewJSON.data.push(dataJSON);
4

2 回答 2

2

push的新对象应该在循环内。

 for(var i =0; i<GAJSON.data.length; i++) {
   viewJSON.data.push({
     bounceRate: GAJSON.data[i].bounceRate,
     country: GAJSON.data[i].country
   });
 }

演示

于 2014-09-11T10:39:07.627 回答
1

您每次都在覆盖值dataJSON["bounceRate"] = GAJSON.data[i].bounceRate;

试试这个代码:

var GAstring ='{"data":[{"bounceRate": "4","country":"Denmark"},{"bounceRate":"3","country":"Spain"},{"bounceRate":"6","country":"Romania"},     {"bounceRate":"1","country":"Bulgaria"},{"bounceRate":"0","country":"Lithuania"},     {"bounceRate":"2","country":"Norway"}]}';
 var GAJSON=JSON.parse(GAstring);
 var viewJSON = {
    data:[]
 };
 var dataJSON ={};
 for(var i =0; i<GAJSON.data.length; i++) {
     dataJSON[i] = [];
     dataJSON[i]["bounceRate"] = GAJSON.data[i].bounceRate;
     dataJSON[i]["country"] = GAJSON.data[i].country;
 }
 viewJSON.data.push(dataJSON);
console.log(viewJSON);

演示

于 2014-09-11T10:33:49.073 回答