我正在使用 Flot 绘制折线图,我的数据集是一个相当大的 JSON blob 数组,看起来像这样(为简洁起见而被 chop ):
[{"load_data": 5047, "url": "http://this.com", "timestamp": "2010-12-03 17:06:45", "formatted_timestamp": 1291396005000, "load_time": 4359},
{"load_data": 8658, "url": "https://that.com", "timestamp": "2010-12-03 17:06:24", "formatted_timestamp": 1291395984000, "load_time": 7516},
{"load_data": 7372, "url": "https://theother.com, "timestamp": "2010-12-03 17:06:22", "formatted_timestamp": 1291395982000, "load_time": 7372}]
因此,Flot 根据 API 文档中的示例,喜欢采用如下 JSON 格式:
{
label: "y = 3",
data: [[0, 3], [10, 3]]
}
他们希望将数据放入元组中以绘制 x、y 轴,这是可以理解的。
我的问题是如何解析上述 JSON blob 以获得“formatted_timestamp”来表示 x 轴,然后使用“load_data”来表示 y 轴?意思是创建一系列类似于FLOT json结构并将一系列值放入图表中?
最佳答案
当给定一个像您所描述的数组时,这个函数就可以解决问题:
function format(source) {
var i, l,
dest = [],
row;
for(i = 0, l = source.length; i < l; i++) {
row = source[i];
dest.push([row.formatted_timestamp, row.load_data]);
}
return dest;
}
关于javascript - Flot 线图和大型 JSON 数据 blob 未格式化为 Flot API 规范,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4403045/