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.
To save the JSON object to a file, we stringify the json object jsonObj and write it to a file using Node FS's writeFile() function.
Array value of a JSON object can be modified. It can be simply done by modifying the value present at a given index. Note: If value is modified at an index which is out of the array size, then the new modification will not replace anything in the original information but rather will be an add-on.
Doing this asynchronously is quite easy. It's particularly useful if you're concerned with blocking the thread (likely). Otherwise, I'd suggest Peter Lyon's answer
const fs = require('fs'); const fileName = './file.json'; const file = require(fileName); file.key = "new value"; fs.writeFile(fileName, JSON.stringify(file), function writeJSON(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.
//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));
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With