在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 });