2014-02-11 37 views
0

我以這種格式接收JSON後生成在JavaScript字典和列表:一個JSON

{ 
"0": { 
    "a": 0.0, 
    "b": 1.0, 
    "G": 6.0, 
    "w": 0.0, 
    "F": -1.0 
}, 
"1": { 
    "a": 0.0, 
    "b": 0.1429004669189453, 
    "G": 0.000301361083984375, 
    "w": 0.1429004669189453, 
    "F": -1.0 
}, 
"2": { 
    "a": 0.0, 
    "b": 0.1429004669189453, 
    "G": 0.000301361083984375, 
    "w": 0.1429004669189453, 
    "F": -1.0 
}, 
"3": { 
    "a": 0.0, 
    "b": 0.1429004669189453, 
    "G": 0.000301361083984375, 
    "w": 0.1429004669189453, 
    "F": -1.0 
.... 

比方說,我把那個叫json變量。我試圖把它變成類似:

[ 
{"key": "series1", 
    values: [ 
      [`json`["1"]["a"],`json`["1"]["F"]],[`json`["1"]["b"],`json`["1"]["G"]] 
      ] 
}, 
{"key": "series2", 
    values: [ 
      [`json`["2"]["a"],`json`["2"]["F"]],[`json`["2"]["b"],`json`["2"]["G"]] 
      ] 
}, 
{"key": "series3", 
    values: [ 
      [`json`["3"]["a"],`json`["3"]["F"]],[`json`["3"]["b"],`json`["3"]["G"]] 
      ] 
}, 
.... 
] 

我嘗試這樣做的JavaScript實現,但迷路了:S

var data = function myData(json) { 

     series = {} 
     for (iteracion in json) { 
      series.push({ 
       key: iteracion, values: [[x: iteracion['a'], y: iteracion['F']],[x: iteracion['b'], y: iteracion['G']]] 
      }) 
     } 

     return series 
+0

格式你想的到的數據是不是有效的對象映射。 你到底需要什麼?我在這個對象中看到了很多冗餘。 – Cerbrus

回答

1

一個解決問題的方法是:

var result = []; 
for (var series in json) {  
    result.push({ 
    key : 'series' + series, 
    values : [ 
     json[series].a, 
     json[series].F, 
     json[series].b, 
     json[series].G, 
    ] 
    }); 
} 

如果你真的不需要包含一個鍵和一個值的對象數組,我組織你的信息稍微好一些:

var result = {}; 
for (var series in json) {  
    result['series' + series] = [ 
    json[series].a, 
    json[series].F, 
    json[series].b, 
    json[series].G, 
    ]; 
} 

這導致了這樣的事情:

{ 
    series0 : [ 0, -1, 1, 6 ], 
    series1 : [ 0, -1, 0.14, 0.0003], 
    ... 
}