这似乎是一个已解决的问题,但我无法找到解决方案。
基本上,我读取了一个JSON文件,更改了密钥,然后将新的JSON写回到同一文件。都可以,但是我松了JSON格式,所以,而不是:
{
name:'test',
version:'1.0'
}
我懂了
{name:'test',version:'1.1'}
Node.js中是否可以将格式良好的JSON写入文件?
这似乎是一个已解决的问题,但我无法找到解决方案。
基本上,我读取了一个JSON文件,更改了密钥,然后将新的JSON写回到同一文件。都可以,但是我松了JSON格式,所以,而不是:
{
name:'test',
version:'1.0'
}
我懂了
{name:'test',version:'1.1'}
Node.js中是否可以将格式良好的JSON写入文件?
Answers:
JSON.stringify
的第三个参数定义用于漂亮打印的空白插入。它可以是字符串或数字(空格数)。Node可以使用写入您的文件系统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,
}
*/
"\t"
如果需要制表符,请使用4,而不是4 。
我认为这可能有用...我喜欢示例代码:)
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);
}
});
tmp
文件夹存在,否则可能失败。
tmp
默认情况下存在文件夹
如果您只想漂亮地打印对象而不将其导出为有效JSON,则可以使用console.dir()
。
它使用语法突出显示,智能缩进,从键中删除引号,并使输出尽可能漂亮。
const jsonString = `{"name":"John","color":"green",
"smoker":false,"id":7,"city":"Berlin"}`
const object = JSON.parse(jsonString)
console.dir(object, {depth: null, colors: true})
在引擎盖下,它是的快捷方式console.log(util.inspect(…))
。唯一的区别是它绕过了inspect()
在对象上定义的任何自定义函数。
如果您不想将其存储在任何地方,而只是查看对象以进行调试。
console.log(JSON.stringify(object, null, " "));
您可以更改第三个参数以调整缩进量。
JSON.stringify
使循环对象窒息,并且util.inspect
不会产生有效的json。:\我没有找到在