How can I pretty-print JSON using node.js?
JSON.stringify
's third parameter defines white-space insertion for pretty-printing. It can be a string or a number (number of spaces). Node can write to your filesystem with fs
. Example:
var fs = require('fs');fs.writeFile('test.json', JSON.stringify({ a:1, b:2, c:3 }, null, 4));/* test.json:{ "a": 1, "b": 2, "c": 3,}*/
See the JSON.stringify() docs at MDN, Node fs docs
I think this might be useful... I love example code :)
var fs = require('fs');var myData = { name:'test', version:'1.0'}var outputFilename = '/tmp/my.json';fs.writeFile(outputFilename, JSON.stringify(myData, null, 4), function(err) { if(err) { console.log(err); } else { console.log("JSON saved to " + outputFilename); }});
If you just want to pretty print an object and not export it as valid JSON you can use console.dir()
.
It uses syntax-highlighting, smart indentation, removes quotes from keys and just makes the output as pretty as it gets.
const jsonString = `{"name":"John","color":"green", "smoker":false,"id":7,"city":"Berlin"}`const object = JSON.parse(jsonString)console.dir(object, {depth: null, colors: true})
Under the hood it is a shortcut for console.log(util.inspect(…))
.The only difference is that it bypasses any custom inspect()
function defined on an object.