2016-08-07 41 views
1

我想弄清楚如何操縱我的JSON數據並創建一個單獨的對象與操縱數據。操縱JSON數據到另一個對象

更確切地說,我用這JSON文件:https://jsonblob.com/57a70ca4e4b0dc55a4eb1f73

我試圖[數據集] [數據]轉換成這種格式:

[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](Value)並以某種方式把它放入一個新的JSON格式的對象,但我不知道該怎麼做。

有人可以幫助我解決這種情況嗎?

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

讓我們知道你試過的東西不起作用 –

+0

當'data'是你從json轉換過來的對象時,你可以製作一個對象的副本並改變它的屬性。 – Alexander

+0

@Alexander,我理解邏輯,但我不知道如何去做。 –

回答

1

這應做到:

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

令人驚歎!謝謝!!! –

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 ] ]