【问题标题】:fs.append into an already existing line with JSONfs.append 到已经存在的 JSON 行
【发布时间】:2020-12-18 13:49:34
【问题描述】:

下面的代码 sn-p 是我的 JSON 文件/数据库,其中包含用户名和银行余额。

我遇到的问题是,当脚本使用“fs.writeFileSync”更改银行余额时,它会用新数据覆盖现有数据。这意味着我必须让它复制所有现有数据并将其与新数据一起粘贴。

我也尝试过使用“fs.appendFileSync”,但这只是添加了新数据,并没有按预期合并任何数据。

我的目标是让脚本导航到“银行”值并将新银行值与旧值合并,而“名字”和“姓氏”保持不变

JSON

{
  "User": {
    "user1": {
      "FirstName": "firstname",
      "LastName": "lastname",
      "Bank": 20000
    }
  }
}
//javascript
let newBalance = 100

let jsonInfo = { 
        User : {
          User : {
            "Bank" : newBalance
          }
        }
    };
     
    let jsonData = JSON.stringify(jsonInfo, null, 2);
    fs.writeFileSync('server/userdata.json', jsonData);

使用我们从“newBalance”和“jsonInfo”获得的数据,json 文件中的新“bank”值应该是“100”,“FirstName”和“LastName”应该仍然是“firstname”和“lastname” "

任何帮助将不胜感激!

【问题讨论】:

    标签: javascript json


    【解决方案1】:

    因为 writeFileSync 将数据带入并保存到路径中,所以需要原始数据写入路径。在 json 格式中,newBalance 可以像下面这样使用。

    //javascript
    let newBalance = 100
    
    let user = {
      "User": {
        "user1": {
          "FirstName": "firstname",
          "LastName": "lastname",
          "Bank": newBalance
        }
      }
    }
    
        let jsonData = JSON.stringify(user, null, 2);
        fs.writeFileSync('server/userdata.json', jsonData);

    【讨论】:

      猜你喜欢
      • 2021-12-03
      • 1970-01-01
      • 2020-08-28
      • 1970-01-01
      • 1970-01-01
      • 2011-02-14
      • 2012-08-12
      • 1970-01-01
      相关资源
      最近更新 更多