nodejs写入json文件,格式化输出json的方法

假如我需要把data序列化成json字符串,然后写入data.json文件中,代码如下:

1 let str = JSON.stringify(data)
2 
3 fs.writeFile('data.json',str,function(err){
4 if (err) {res.status(500).send('Server is error...')}
5 })

入json文件后,都会出现很恶心的一行式,看看

 

不能忍对不对!!!

Vanilla JS的JSON.stringify()是可以让输出实现漂亮直观的json的。

第一段代码可以这样写,第三个参数设置为"\t"(第二个参数一定要补,可以写成"",也可以为null):

let str = JSON.stringify(data,"","\t")
let str = JSON.stringify(data,null,"\t")

然后data.json就可以这样

 

很完美对不对!!!

*注:JSON.stringify()具体用法参考MDN

转载于:https://www.cnblogs.com/threeEyes/p/10023827.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Node.js是一个基于Chrome V8引擎的JavaScript运行时环境,它可以让你在服务器端运行JavaScript代码。要在本地生成一个JSON文件,你可以使用Node.js的fs模块来进行文件操作。 首先,你需要引入fs和path模块,这两个模块是Node.js提供的核心模块,用于处理文件和路径操作。你可以使用import语句来引入这两个模块,如下所示: ``` import fs from "fs"; import path from "path"; ``` 然后,你需要指定要创建的目录和文件名称,可以使用path.join()方法来拼接路径。例如: ``` const file = path.join(__dirname, "shop.json"); ``` 接下来,你需要将数据对象dataSource转换为JSON格式的字符串。你可以使用JSON.stringify()方法来实现,其中的第二个参数null表示不进行数据筛选,第三个参数"\t"表示使用制表符进行格式化,使生成的JSON文件易于阅读。例如: ``` const content = JSON.stringify(dataSource, null, "\t"); ``` 然后,你可以使用fs.writeFile()方法来将生成的JSON字符串写入文件。该方法接受三个参数:文件名称、要写入的内容和一个回调函数,用于处理写入文件时的错误。例如: ``` fs.writeFile("shop.json", content, function (err) { if (err) { return console.log(err); } console.log("文件创建成功,地址:shop.json"); }); ``` 最后,你可以在回调函数中打印一条成功的消息,指示文件创建成功,并提供生成的JSON文件的地址。生成的JSON文件与你执行的JavaScript文件同级。如果你希望将JSON文件生成在其他路径,请修改"shop.json"的路径即可。 此外,如果你在执行JavaScript文件时遇到了"Cannot use import statement outside a module"的错误,这是因为你的文件被解释为CommonJS模块,而不是ES模块。你可以在package.json文件中添加"type":"module"属性,使得你的文件被解释为ES模块。具体来说,你可以在package.json文件中的顶层添加以下代码: ``` "type": "module" ``` 总结一下,要在本地生成一个JSON文件,你需要使用Node.js的fs和path模块进行文件操作。首先,引入这两个模块;然后,指定要创建的目录和文件名称;接下来,将数据对象转换为JSON字符串并进行格式化;最后,将生成的JSON字符串写入文件,并在回调函数中处理错误和打印成功消息。如果遇到"Cannot use import statement outside a module"错误,请在package.json文件中添加"type":"module"属性。 希望以上信息能够帮助到你,如果你有任何问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值