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
添加回答
舉報