在XMLHttpRequest之后将数据添加到JSON

时间:2014-03-21 04:31:13

标签: javascript ajax json

好吧,有一个头疼的时刻。

在我从外部网站请求对象后,我尝试添加其他数据(仅用于测试,我计划添加随机值)

我只是切入追逐:

例如,我的test.json文件如下所示:

[["month",[-150,100,0.7]]]

获取JSON文件后,我需要它看起来像这样:

[["month",[-150,100,0.7,24,24,0.5]]]

请求:

    xhr = new XMLHttpRequest();
    xhr.open('GET', '/test.json', true);
    xhr.onreadystatechange = function(e) {
      if (xhr.readyState === 4) {
        if (xhr.status === 200) {
          var data = JSON.parse(xhr.responseText);

          // Trying to add this as an additional array
          data[0].push([24,24,0.5]);

          window.data = data;
          for (i=0;i<data.length;i++) {
            globe.addData(data[i][1], {format: 'magnitude', name: data[i][0], animated: true});
          }
          globe.createPoints();
          settime(globe,0)();
          globe.animate();
          document.body.style.backgroundImage = 'none'; // remove loading
        }
      }
    };
    xhr.send(null);

这是我在dev tools看到的层次结构的屏幕截图:

Adding it as a new array, making an even deeper multi-dimensional array instead of just adding to the existing one.

它将数据更深入地添加到模型中......我只是有点失去了如何构建它。

(使用WebGL制作项目 - Globe Google Project,FYI)

如果我有数据集而不仅仅是做...更简单的方法吗?

data[0][1].push(24);
data[0][1].push(24);
data[0][1].push(0.5);

1 个答案:

答案 0 :(得分:2)

使用Array.prototype.concat

 var yourArray = [24,24,0.5];
 data[0][1] = data[0][1].concat(yourArray);

或者apply使用push

data[0][1].push.apply(data[0][1], yourArray);