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

标签 javascript json

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

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

我想我需要使用 readFile 和函数 replace 吗?

需要帮助,提前致谢

  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
     }
  }]

最佳答案

使用 append 你不能这样做。阅读第一条评论,了解如何实现您的目标。

在这里,我提出另一种不符合您预期结果的方法。但是在注释中我不能输入代码块,这就是我将它放在这里的原因。

我建议每次您的 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));

关于javascript - 用节点JS替换文件中的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55373620/

相关文章:

javascript - JQuery checkbox.prop ('checked' )总是返回 false 值

android - 改造忽略查询参数

javascript - 如何使用 XSL 属性传递两个或多个参数

javascript - 如何使用仅使用 jQuery 构建的单页应用程序实现路由

javascript - Spotify json 响应包含换行符?

mysql - 在更新中添加嵌套对象参数

javascript - 如何给评论添加回复功能?

javascript - 如何从模板节点复制并填充 json 数据并使用 javascript 将它们附加到文档中?

javascript - 在onerror函数中重写img标签的onerorr函数

javascript - 如果在页面加载时勾选复选框并单击该复选框,则禁用输入