JSON数据到数据集中

时间:2014-11-28 19:35:43

标签: javascript arrays json loops object

{
    "count": '2',
    "data": [{
        "value": "58",
        "color": "red"
    }, {
        "value": "45",
        "color": "blue"
    }, {
        "value": "32",
        "color": "yellow"
    }, {
        "value": "25",
        "color": "orange"
    }]
}

我希望将这些数据分成2个数据集。类似下面的内容

"dataone": [{
    "value": "58",
    "color": "red"
}, {
    "value": "45",
    " color": "blue"
}];
"dataatwo": [{
    "value": "32",
    "color": "yellow"
}, {
    "value": "25",
    "color": "orange"
}];

如何使用Javascript迭代JSON数据以生成数据集。

3 个答案:

答案 0 :(得分:2)

var i, res = {}, _data, names = ['dataone', 'datatwo'];

for (i = 0; i < +json.count; i++) {
  _data = json.data.splice(0, +json.count);

  if (_data && _data.length) {
    res[names[i]] = _data;
  }
}

演示:http://jsbin.com/mitagi/2/

答案 1 :(得分:0)

var a={
    "count": '2',
    "data": [{
        "value": "58",
        "color": "red"
    }, {
        "value": "45",
        "color": "blue"
    }, {
        "value": "32",
        "color": "yellow"
    }, {
        "value": "25",
        "color": "orange"
    }]
}

var d1= { dataone: a.data.slice(0,a.count) };
var d2= { datatwo: a.data.slice(count) };
console.log(d1);
console.log(d2);

一般情况

a.data.forEach(function(e,i){ 
   if(i%a.count==0) 
      console.log(a.data[i],a.data[i+1]);
   }
)

答案 2 :(得分:0)

试试这个

http://jsfiddle.net/uoh63kx4/3/

var json = {
    "count": '2',
    "data": [{
        "value": "58",
        "color": "red"
    }, {
        "value": "45",
        "color": "blue"
    }, {
        "value": "32",
        "color": "yellow"
    }, {
        "value": "25",
        "color": "orange"
    }]
};
var dataone=[];
var dataatwo=[];

    for(var i=0;i<json.count;i++)
    {
        dataone.push(json.data[i])
    }

    for(var i=json.count;i<json.data.length;i++)
    {
        dataatwo.push(json.data[i])
    }
    console.log(dataone);
    console.log(dataatwo);