我如何使用node.js漂亮地打印JSON?
这似乎是一个解决的问题,但我无法find解决scheme。
基本上,我读了一个JSON文件,更改一个键,并将新的JSON写回到同一个文件。 所有的作品,但我失去了JSON格式。所以,而不是:
{ name:'test', version:'1.0' }
我明白了
{name:'test',version:'1.1'}
有没有在Node.js写格式化的JSON文件的方法?
JSON.stringify
的第三个参数定义了用于漂亮打印的空白插入。 它可以是一个string或一个数字(空格的数量)。 节点可以用fs
写入文件系统。 例:
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, } */
请参阅MDN , Node fs文档中的JSON.stringify() 文档
我认为这可能是有用的…我喜欢示例代码:)
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); } });
你可以使用本地的“util”模块。 它使用语法突出显示,智能缩进,从键中删除引号,只是使输出变得漂亮。
const object = JSON.parse(jsonString) const util = require('util') console.log(util.inspect(object, {depth: null, colors: true}))
编辑:
console.dir()
更简单,它是console.log(util.inspect())
的快捷方式。 唯一的区别是它绕过了在对象上定义的任何自定义的inspect()
函数。
const object = JSON.parse(jsonString) console.dir(object, {depth: null, colors: true})