1 回答

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超11個贊
讀寫文件最直接的方法是使用它們的同步對應(yīng)項(xiàng):readFileSync()和writeFileSync()。為了巧妙地使用 JSON,您可以將函數(shù)定義為:
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()函數(shù):
const storedPlanets = readPlanets();
請注意我如何手動map()向. JSON 本身不知道類 - 創(chuàng)建的對象是基本的 JavaScript 對象。PlanetreadPlanets()JSON.parse()
另請注意我如何稍微更改了您的數(shù)據(jù)格式。我沒有使用像'Twenty-seven moons'or這樣的值,而是在 JSON: and'6,371 km'中放入一個簡單的數(shù)字。這是因?yàn)槟ǔOMM可能保持原始數(shù)據(jù),因?yàn)轱@示格式是您可能希望隨時(shí)更改的內(nèi)容。數(shù)據(jù)應(yīng)該持續(xù)存在。如果您想將這些原始數(shù)字轉(zhuǎn)換為您的格式,我建議您在類中添加方法以返回衛(wèi)星的格式化數(shù)字和大小。276371Planet
添加回答
舉報(bào)