我正在读一个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。(“Washington D.C.”)这样的事情,这将更新tte文件,如下所示:
{
"lastupdated": "Thu Nov 20 2014 10:57:08 GMT-0500 (EST)",
"restaurants" : {
"McDonalds": {
"Americas": [
"Atlanta",
"Cambridge",
"Dayton",
"Washington D.C."
],
我目前正在使用FS来读取它并将其存储为json对象
答案 0 :(得分:2)
如果您已经使用fs.readFile
读取JSON文件并将JSON字符串存储在变量中,则需要解析JSON字符串,修改已解析的对象,然后将其转换回JSON字符串,用fs.writeFile
我没有测试过这个,但粗略地说:
var fs = require('fs');
fs.readFile('pathToJSONData.json', function(err, data) {
var obj = JSON.parse(data);
obj.restaurants.McDonalds.Americas.push('Washington D.C.');
var newJSON = JSON.stringify(obj);
fs.writeFile('pathToJSONData.json', newJSON, function(err) {
console.log('done');
});
});
答案 1 :(得分:1)
您可以先要求使用json文件:
var myJsonObject = require("./myfile");
现在您可以进行更改:
myJsonObject.restaurants.push(...);
现在保存您的文件:
fs.writeFile("./myfile.json", JSON.stringify(myJsonObject, null, 4), function(err){
//handle err, success
});