如何使用 node.js 漂亮地打印 JSON?
这似乎是一个已解决的问题,但我无法找到解决方案。
基本上,我读取一个 JSON 文件,更改密钥,然后将新的 JSON 写回同一文件。一切正常,但我失去了 JSON 格式。所以,而不是:
{
name:'test',
version:'1.0'
}
我得到
{name:'test',version:'1.1'}
Is There a way in Node.js to write well formatted JSON to file ?
This seems like a solved problem but I am unable to find a solution for it.
Basically, I read a JSON file, change a key, and write back the new JSON to the same file. All works, but I loose the JSON formatting.So, instead of:
{
name:'test',
version:'1.0'
}
I get
{name:'test',version:'1.1'}
Is there a way in Node.js to write well formatted JSON to file ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
JSON.stringify 的第三个参数定义了用于漂亮打印的空白插入。它可以是字符串或数字(空格数)。 Node 可以使用
fs
写入您的文件系统。示例:请参阅 JSON.stringify() 文档,网址为MDN,Node fs 文档
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 withfs
. Example:See the JSON.stringify() docs at MDN, Node fs docs
我认为这可能有用......我喜欢示例代码:)
I think this might be useful... I love example code :)
如果您只想漂亮地打印对象而不将其导出为有效的 JSON,则可以使用console.dir()。
它使用语法突出显示、智能缩进、删除键中的引号,并使输出尽可能漂亮。
在底层,它是
console.log(util.inspect(…))
的快捷方式。唯一的区别是它绕过对象上定义的任何自定义
inspect()
函数。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.
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.如果您不想将其存储在任何地方,而只是为了调试目的而查看该对象。
您可以更改第三个参数来调整缩进。
If you don't want to store this anywhere, but just view the object for debugging purposes.
You can change the third parameter to adjust the indentation.
我知道这是个老问题。但也许这可以帮助你
I know this is old question. But maybe this can help you ????
JSON string
Pretty Print JSON
Minify JSON
那这个呢?
what about this?
另一种解决方法是使用 prettier 来格式化 JSON。
下面的示例使用“json”解析器,但也可以使用“json5”,请参阅列表有效的解析器。
Another workaround would be to make use of prettier to format the JSON.
The example below is using 'json' parser but it could also use 'json5', see list of valid parsers.
如果 prettify 是新行上的名称值对,那么在 stringify 中指定空格数对我来说不起作用,唯一对我有用的是
if prettify is name value pairs on new lines then specifying number of spaces in stringify didn't work for me the only thing that worked for me was