2015-09-05 77 views
0

我想创建一个虚拟json数据并将其用于highChart。 这是我正在创建JSON数组为图表数据创建JSON

var summaryData = { 
        WestWorld:[ 
         {"Jan":7894}, 
         {"Feb":7845}, 
         {"March":5826}, 
         {"April":7930}, 
         {"May":1589}, 
         {"June":7891}, 
         {"July":9724}, 
         {"August":7403}, 
         {"September":5566}, 
         {"October":7733}, 
         {"November":1186}, 
         {"December":4456} 
        ], 
        EastWorld:[ 
         {"Jan":7410}, 
         {"Feb":9512}, 
         {"March":7520}, 
         {"April":8510}, 
         {"May":9965}, 
         {"June":72580}, 
         {"July":147}, 
         {"August":4489}, 
         {"September":6685}, 
         {"October":7036}, 
         {"November":8852}, 
         {"December":4569} 
         ] 
       }; 

现在我打算用这些数据绘制charts.I我能够这样做

for (var key in summaryData){ 
     console.log(summaryData[''+key+'']);  
     } 

这是检索键安装12个对象中的每一个的两个数组。 我可以创造一个更好的办法这个JSON对象&最小化,如果& for循环得到它的键&值

回答

0

你可以设置你的JSON像这样:

var summaryData = { 
    WestWorld: { 
     "Jan":7894, 
     "Feb":7845, 
     ... 
    }, 
    EastWorld: { 
     "Jan":7410, 
     "Feb":9512, 
     ... 
    }  
}; 

这样你就可以访问任何而不必循环访问WestWorldEastWorld中的阵列。例如:

summaryData.WestWorld.Jan => 7894 
0

summaryData具有两个对象是阵列和在这种情况下的对象阵列。 这将检索一个阵列和它的长度

console.log((summaryData.EastWorld).length); 

显示其是与单个键的对象的第一个数组元素:值

console.log(summaryData.EastWorld[0]); 

以获得其值

console.log(summaryData.EastWorld[0].Jan); 

甲函数检索每个键:值对

function show(world) { 
var len = (summaryData[world]).length; 
var obj = ""; 
var ii = 0; 
for (ii; ii < len; ii += 1) { 
    obj = summaryData[world][ii]; 
    for (var key in obj) { 
     console.log(key + ' ==> ' + obj[key]); 
    } 
} 
} 
show("WestWorld"); 
show("EastWorld"); 

要成为一个真正的JSON每个字符串需要双引号
检查与在线JSON验证..