我正在读取4个传感器的读数。我得到一个像这样的数组:
[{"value":0.162512,"number":0,"channel":0},
{"value":0.027835,"number":1,"channel":1},
{"value":0.08361,"number":2,"channel":2},
{"value":0.295788,"number":3,"channel":3},
{"value":0.137746,"number":4,"channel":0},
{"value":0.009403,"number":5,"channel":1},
{"value":0.089616,"number":6,"channel":2},
{"value":0.310242,"number":7,"channel":3},
{"value":0.109047,"number":8,"channel":0},
...
{"value":0.085652,"number":28,"channel":0},
{"value":0.01359,"number":29,"channel":1},
{"value":0.105441,"number":30,"channel":2},
{"value":0.32407,"number":31,"channel":3}]
我需要格式化并将其转换为JSON对象,我想通过这里阅读。然后我将使用flot绘制图形。这就是目标。
我想要一个折线图,显示四个传感器的每个读数。我最终将在Python中使用它,如果这有助于我的方向。
我不知道我在做什么,所以任何方向都会受到赞赏。
答案 0 :(得分:1)
没有线索不是一个好的起点......请参阅flot documentation和examples开始。
你有什么是一个对象数组。 (从它的外观来看已经是JSON。如果仍然在python端,将它作为一个字符串放在你的javascript中并在其上调用JSON.parse()
,它已经是有效的JSON。)
您需要的是数组(数据点)的数组(数据集)数组。像
这样的东西[
[ // dataseries for channel 0
[0, 0.162515],
[4, 0.137746],
...
],
[ // dataseries for channel 1
[1, 0.027835],
[5, 0.009403],
...
],
...
]
要进行转换,您可以循环遍历原始数组,并将数据点放在正确的数据集中,如下所示:
var dataAsArrays = [
[], [], [], [] // one empty array for each dataseries / channel
];
$.each(dataAsObjects, function (index, item) {
dataAsArrays[item.channel].push([item.number, item.value]);
});
有关上述代码的工作示例,请参阅此fiddle。