How do I update a value in a json file and save it through node.js? I have the file content:
var file_content = fs.readFileSync(filename);
var content = JSON.parse(file_content);
var val1 = content.val1;
Now I want to change the value of val1
and save it to the file.
//change the value in the in-memory object
content.val1 = 42;
//Serialize as JSON and Write it to a file
fs.writeFileSync(filename, JSON.stringify(content));
Doing this asynchronously is quite easy. It's particularly useful if you're concerned for blocking the thread (likely).
var fs = require('fs')
var fileName = './file.json'
var file = require(fileName)
file.key = "new value"
fs.writeFile(fileName, JSON.stringify(file), function (err) {
if (err) return console.log(err)
console.log(JSON.stringify(file))
console.log('writing to ' + fileName)
});
The caveat is that json is written to the file on one line and not prettified. ex:
{
"key": "value"
}
will be...
{"key": "value"}
To avoid this, simply add these two extra arguments to JSON.stringify
JSON.stringify(file, null, 2)
null
- represents the replacer function. (in this case we don't want to alter the process)
2
- represents the spaces to indent.