如何以json格式保存数据?

时间:2018-03-02 04:43:30

标签: javascript json node.js real-time

我创建了一个从四个通道接收数据的程序。 这是数据类型。 (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]

2 个答案:

答案 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返回对象的深度复制版本。