将JSON数据操作到另一个对象中

时间:2016-08-07 12:13:44

标签: javascript jquery json

我试图找出如何操纵我的JSON数据并使用操纵数据创建一个单独的对象。

更确切地说,我使用的是这个JSON文件:https://jsonblob.com/57a70ca4e4b0dc55a4eb1f73

我正在尝试将[dataset] [data]转换为以下格式:

[Date.UTC(2013,5,2),0.7695],
[Date.UTC(2013,5,3),0.7648],
[Date.UTC(2013,5,4),0.7645],
[Date.UTC(2013,5,5),0.7638],
[Date.UTC(2013,5,6),0.7549]

所以我需要使用字段[dataset][data][i][0] (日期)[dataset][data][i][4] (值)并以某种方式将其放入新的JSON格式对象,但我不知道该怎么做。

有人可以帮我解决这个问题吗?

$(function () {
    $.getJSON('json/AAPL.json', function (data) {
        // Data manipulation into a new object??
    });
});

2 个答案:

答案 0 :(得分:1)

这应该这样做:

$(function () {
    $.getJSON('json/AAPL.json', function (data) {
        var correctFormat = data.dataset.data.map(function(item) {
            return [new Date(item[0]), item[4]];
        });
    });
});

答案 1 :(得分:1)

你的问题只是地图一:

你有一个元素数组(数组本身),你想保留和修改每个子数组的第一个和第五个元素

所以你可以这样做

var data = [
  [
    "2016-08-02",
    106.05,
    106.07,
    104,
    104.48,
    32731069,
    0,
    1,
    106.05,
    106.07,
    104,
    104.48,
    32731069
  ],
  [
    "2016-08-01",
    104.41,
    106.15,
    104.41,
    106.05,
    37141424,
    0,
    1,
    104.41,
    106.15,
    104.41,
    106.05,
    37141424
  ],
  [
    "2016-07-29",
    104.19,
    104.55,
    103.68,
    104.19,
    27076805,
    0,
    1,
    104.19,
    104.55,
    103.68,
    104.19,
    27076805
  ]
  ];
var  result = data.map(x => [Date(x[0]), x[4]]);
console.log(result); // [ [ 'Sun Aug 07 2016 14:29:22 GMT+0200 (Paris, Madrid (heure d’été))',104.48 ],
                     // [ 'Sun Aug 07 2016 14:29:22 GMT+0200 (Paris, Madrid (heure d’été))',106.05 ],
                     // [ 'Sun Aug 07 2016 14:29:22 GMT+0200 (Paris, Madrid (heure d’été))',104.19 ] ]