在Node中写入和删除JSON文件中的元素

我目前正在阅读一个JSON对象文件,我试图修改元素并写回它。 我知道这可以很容易地用MongoDB来完成,但是我需要用JSON文件来完成。 我目前的结构如下所示:

{ "lastupdated": "Thu Nov 20 2014 10:57:08 GMT-0500 (EST)", "restaurants" : { "McDonalds": { "Americas": [ "Atlanta", "Cambridge", "Dayton" ], "Asia": [ "Seoul", "Shanghai", "Singapore", "Tokyo" ], "Europe": [ "Milan", "Madrid", "Amsterdamn" ] }, "BurgerKing" : { "Americas": [ "Atlanta", "Boston", "Charlottesville" ], "Asia" : [ "Hong Kong", "Singapore", "Tokyo" ], "Europe" : [ "Rome", "Madrid", "Dublin" ] } } } 

我想能够做一些像json.add(object.restaurants.McDonalds.Americas。(“华盛顿特区”),这将更新tte文件看起来像:

 { "lastupdated": "Thu Nov 20 2014 10:57:08 GMT-0500 (EST)", "restaurants" : { "McDonalds": { "Americas": [ "Atlanta", "Cambridge", "Dayton", "Washington DC" ], 

我目前正在使用FS读取它并将其存储为json对象

如果您已经使用fs.readFile读取JSON文件并将JSONstring存储在variables中,则需要parsingJSONstring,修改parsing的对象,然后将其转换回JSONstring并用fs.writeFile写回fs.writeFile

我没有testing过这个,但粗略地说:

 var fs = require('fs'); fs.readFile('pathToJSONData.json', function(err, data) { var obj = JSON.parse(data); obj.restaurants.McDonalds.Americas.push('Washington DC'); var newJSON = JSON.stringify(obj); fs.writeFile('pathToJSONData.json', newJSON, function(err) { console.log('done'); }); }); 

你可以先要求你的json文件:

 var myJsonObject = require("./myfile"); 

现在您可以进行更改:

 myJsonObject.restaurants.push(...); 

现在保存你的文件:

 fs.writeFile("./myfile.json", JSON.stringify(myJsonObject, null, 4), function(err){ //handle err, success });