我创建了一个从四个通道接收数据的程序。
这是数据类型。
(0.499147; 0.499147; 0.499147; 0.499147;)
(由';'分隔)每隔一个间隔设置的数据可以读取100次。
所以我想以JSON格式保存收到的数据。
我编写了以下代码但无法以JSON格式保存。
port.on('data',function(devicevalue){
arrayvalue = devicevalue.toString();
eachvalue = arrayvalue.split(';');
ch0value = eachvalue[0];
ch1value = eachvalue[1];
ch2value = eachvalue[2];
ch3value = eachvalue[3];
var json_data =
{
index : i ,
ch0value : eachvalue[0],
ch1value : eachvalue[1],
ch2value : eachvalue[2],
ch3value : eachvalue[3],
};
稍后如果我写这段代码
jsonfile.writeFile(file,json_data,{flag: 'a', spaces: 2},function(err){
console.error(err)
});
[https://i.stack.imgur.com/DMc5M.png][https://i.stack.imgur.com/DMc5M.png]
如果我写这个而不是上面的
var objjson = JSON.stringify(json_data);
jsonfile.writeFile(file,objjson,{flag: 'a', spaces: 2},function(err){
console.error(err)
});
[https://i.stack.imgur.com/8ldPG.png][https://i.stack.imgur.com/8ldPG.png]
如果我想要这个表格,我该如何编写代码?
[https://i.stack.imgur.com/nEr3e.png][https://i.stack.imgur.com/nEr3e.png]
答案 0 :(得分:0)
这个怎么样:
var results = [];
var i = 0;
port.on('data', function(devicevalue) {
var newElement = {
index: i,
ch0value: eachvalue[0],
ch1value: eachvalue[1],
ch2value: eachvalue[2],
ch3value: eachvalue[3],
ch4value: eachvalue[4]
};
results.push(newElement);
i++;
});
port.on('close', function(code, signal) {
jsonfile.writeFile(file,results,{flag: 'a', spaces: 2}, console.log);
});
答案 1 :(得分:0)
尝试使用toJS()。
示例:var.toJS();
您也可以尝试使用JSON。相同的概念,但toJS返回对象的深度复制版本。