为图表数据创建JSON

时间:2015-09-05 01:10:12

标签: javascript arrays json

我想创建一个虚拟json数据并将其用于highChart。 这就是我创建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}
                        ]
                };

现在我打算用这些数据绘制图表。我可以通过这样做来检索密钥

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

安慰十二个对象的两个数组。 我可以用更好的方式创建这个json对象吗?最小化if& for循环得到它的键和&值

2 个答案:

答案 0 :(得分:0)

您可以像这样设置JSON:

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

这样您就可以直接访问任何内容,而无需遍历WestWorldEastWorld中的数组。例如:

summaryData.WestWorld.Jan => 7894

答案 1 :(得分:0)

summaryData有两个对象是数组,在这种情况下是对象数组。 这将检索一个数组及其长度

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

显示第一个数组元素,它是一个具有单个键的对象:value

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验证..