1 回答
TA贡献1818条经验 获得超11个赞
读写文件最直接的方法是使用它们的同步对应项:readFileSync()和writeFileSync()。为了巧妙地使用 JSON,您可以将函数定义为:
const filePath = 'planets.json';
function readPlanets() {
const json = fs.readFileSync(filePath);
const planets = JSON.parse(json);
return planets.map(planet => new Planet(
planet.name,
planet.numberOfMoons,
planet.size
));
}
function writePlanets(planets) {
const json = JSON.stringify(planets, null, 4);
fs.writeFileSync(filePath, json);
}
然后,您可以填充您的planets.json文件:
const planets = [
new Planet('Earth', 1, 6371),
new Planet('Mars', 2, 3389),
new Planet('Uranus', 27, 25362),
new Planet('Saturn', 53, 58232),
];
writePlanets(planets);
要读回它,您可以使用以下readPlanets()函数:
const storedPlanets = readPlanets();
请注意我如何手动map()向. JSON 本身不知道类 - 创建的对象是基本的 JavaScript 对象。PlanetreadPlanets()JSON.parse()
另请注意我如何稍微更改了您的数据格式。我没有使用像'Twenty-seven moons'or这样的值,而是在 JSON: and'6,371 km'中放入一个简单的数字。这是因为您通常希望尽可能保持原始数据,因为显示格式是您可能希望随时更改的内容。数据应该持续存在。如果您想将这些原始数字转换为您的格式,我建议您在类中添加方法以返回卫星的格式化数字和大小。276371Planet
添加回答
举报