📜  在 nodejs 中编辑 json 文件 - Javascript (1)

📅  最后修改于: 2023-12-03 15:07:44.882000             🧑  作者: Mango

在 Node.js 中编辑 JSON 文件

在 Node.js 中,我们可以使用内置的 fs 模块读取和写入文件。对于 JSON 文件,我们可以使用 JSON.parse() 将其解析为 JavaScript 对象,然后进行操作并使用 JSON.stringify() 将其转换回 JSON 格式并写入文件。

读取 JSON 文件

下面的代码演示了如何读取一个名为 data.json 的 JSON 文件,并将其解析为 JavaScript 对象:

const fs = require('fs');

fs.readFile('data.json', 'utf8', (err, data) => {
  if (err) {
    throw err;
  }
  
  const obj = JSON.parse(data);
  console.log(obj);
});

此代码:

  1. 引入 fs 模块。
  2. 使用 fs.readFile() 方法以 UTF-8 编码读取 data.json 文件。
  3. 如果读取出错,抛出异常。
  4. 如果读取成功,将数据解析为 JavaScript 对象。
  5. 打印 JavaScript 对象。
写入 JSON 文件

下面的代码演示了如何将 JavaScript 对象写入一个名为 data.json 的 JSON 文件:

const fs = require('fs');

const obj = {
  name: 'John Doe',
  age: 30,
  city: 'New York'
};

fs.writeFile('data.json', JSON.stringify(obj), err => {
  if (err) {
    throw err;
  }
  
  console.log('Data written to file');
});

此代码:

  1. 定义一个名为 obj 的 JavaScript 对象。
  2. 使用 fs.writeFile() 方法将 obj 对象转换为 JSON 格式并写入 data.json 文件。
  3. 如果写入出错,抛出异常。
  4. 如果写入成功,打印消息。
更新 JSON 文件

要更新 JSON 文件,我们可以先读取该文件,然后更新 JavaScript 对象,最后将更新后的 JavaScript 对象写回 JSON 文件,如下所示:

const fs = require('fs');

fs.readFile('data.json', 'utf8', (err, data) => {
  if (err) {
    throw err;
  }
  
  const obj = JSON.parse(data);
  obj.age = 31;
  
  fs.writeFile('data.json', JSON.stringify(obj), err => {
    if (err) {
      throw err;
    }
    
    console.log('Data updated in file');
  });
});

此代码:

  1. 使用 fs.readFile() 方法以 UTF-8 编码读取 data.json 文件。
  2. 如果读取出错,抛出异常。
  3. 如果读取成功,将数据解析为 JavaScript 对象。
  4. 更新 JavaScript 对象中的一个属性。
  5. 使用 fs.writeFile() 方法将更新后的 JavaScript 对象转换为 JSON 格式并写入 data.json 文件。
  6. 如果写入出错,抛出异常。
  7. 如果写入成功,打印消息。

如上所述,我们可以使用 Node.js 中的内置 fs 模块来读取、写入和更新 JSON 文件。