本文翻译自How to read and write a JSON object to a file in Node.js
有时您想将JSON
对象存储到Node.js应用程序中的文件中,然后在以后检索它。 例如,当您开始创建新的RESTful API时,将数据存储在本地文件系统上可能是一个不错的选择。 您可以跳过数据库设置,而是将JSON数据保存到文件中。
在本文中,您将学习如何在Node.js中将JSON对象写入文件
。 在上一篇文章中,我们研究了如何[在Node.js中读写文件](https://attacomsian.com/blog/reading-writing-files-nodejs0。 如果您需要有关读写文件的更多信息,请查看一下。
将JSON写入文件
JavaScript提供了一个内置的·JSON对象,用于解析和序列化JSON数据。 您可以使用JSON.stringify()
方法将JSON对象转换为其字符串表示形式,然后使用文件系统fs
模块将·其写入文件。
这是一个使用fs.writeFile()
方法将JSON对象异步写入文件的示例:
const fs = require('fs');
// create a JSON object
const user = {
"id": 1,
"name": "John Doe",
"age": 22
};
// convert JSON object to string
const data = JSON.stringify(user);
// write JSON string to a file
fs.writeFile('user.json', data, (err) => {
if (err) {
throw err;
}
console.log("JSON data is saved.");
});
将JSON对象漂亮地打印到文件中,可以将其他参数传递给JSON.stringify()
:
// pretty-print JSON object to string
const data = JSON.stringify(user, null, 4);
fs
模块还提供了一种称为writeFileSync()
的方法,用于将数据同步写入文件:
try {
fs.writeFileSync('user.json', data);
console.log("JSON data is saved.");
} catch (error) {
console.error(err);
}
在Node.js中使用同步文件操作时要小心。 同步方法会阻塞Node.js事件循环,其他所有操作都必须等待文件操作完成。
从文件读取JSON
要将文件中的JSON数据检索并解析回JSON对象,可以使用fs.readFile()
方法和JSON.parse()
进行反序列化,如下所示:
const fs = require('fs');
// read JSON object from file
fs.readFile('user.json', 'utf-8', (err, data) => {
if (err) {
throw err;
}
// parse JSON object
const user = JSON.parse(data.toString());
// print JSON object
console.log(user);
});
上面的示例将在控制台上输出以下内容:
{ id: 1, name: 'John Doe', age: 22 }
就像fs.writeFileSync()
方法一样,您也可以使用fs.readFileSync()
在Node.js应用程序中同步读取文件。
看一下如何在Node.js中读写JSON文件
的教程,以了解有关在Node.js应用程序中读写JSON文件的更多信息。
喜欢这篇文章吗? 在Twitter和LinkedIn上关注我。 您也可以订阅`RSS Feed](https://feeds.feedburner.com/attacomsian)。
网友评论