用节点JS替换文件中的字符

时间:2019-03-27 09:21:09

标签: javascript json

我将JSON附加到文件中,我使用appendFile附加到文件中。 我正在使用特定的JSON结构

我的问题是:如何用','更改字符'] ['

我认为我需要使用readFile并替换功能?

需要帮助,在此先感谢

  var table = []


  table.push({"executionDate":date,
     "issueID":key,
     "priority":{
     "jira": priority, 
     "computed":score1
     },
     "expectedValue":{
           "jira": expected, 
           "computed":score2
     }
  })

  var json = JSON.stringify(table);


  fs.appendFile('myjsonfile.json', json, 'utf8', function (err) {
     if (err) console.error(err)
     });

实际结果:

  [{
     "executionDate": 25 / 03 / 2019,
     "issueID": 1,
     "priority": {
        "jira": important,
        "computed": 10
     },
     "expectedValue": {
        "jira": expected,
        "computed": 20
     }
  }
  ]
  [{
     "executionDate": 26 / 03 / 2019,
     "issueID": 2,
     "priority": {
        "jira": important,
        "computed": 20
     },
     "expectedValue": {
        "jira": expected,
        "computed": 30
     }
  }]

预期结果:

  [{
     "executionDate": 25 / 03 / 2019,
     "issueID": 1,
     "priority": {
        "jira": important,
        "computed": 10
     },
     "expectedValue": {
        "jira": expected,
        "computed": 20
     }
  }
  ,
  {
     "executionDate": 26 / 03 / 2019,
     "issueID": 2,
     "priority": {
        "jira": important,
        "computed": 20
     },
     "expectedValue": {
        "jira": expected,
        "computed": 30
     }
  }]

2 个答案:

答案 0 :(得分:0)

使用添加,您将无法执行此操作。阅读第一条评论,以了解如何实现目标。

在这里,我提出了另一种方式,它与您的预期结果不符。但是在注释中我无法输入代码块,这就是为什么我将其放在此处。

我建议每次添加JSON 和换行符 "\n"时都应附加。然后,当您读取文件时,请按换行分隔并分别解析每行:

var data = contents.trim()
                   .split(/\n/g)
                   .map(line => JSON.parse(line)[0]);

也就是说,如果阵列中始终只有一个项目。

如果每个附加条目有多个项目:

var data = [];
contents.trim()
        .split(/\n/g)
        .map(JSON.parse)
        .forEach(entry => data.push(...entry));

答案 1 :(得分:0)

最后我找到了:

        var table = []

        table.push({"executionDate":date,
        "issueID":key,
        "priority":{
            "jira": priority, 
            "computed":score1
        },
        "expectedValue":{
            "jira": expected, 
            "computed":score2
        }
        })

        var json = JSON.stringify(table);


        fs.appendFile('myjsonfile.json', json, 'utf8', function (err) {
            if (err) console.error(err)
        });

        fs.readFile('myjsonfile.json', 'utf8', function (err,data) {
            if (err) {
                return console.log(err);
            }
            var result = data.replace('][',',');

            fs.writeFile('myjsonfile.json', result, 'utf8', function (err) {
                if (err) return console.log(err);
            });


        });