json字符串格式化显示到页面 / json.stringify()的三个参数 / 保存json数据到文件显示在一行问题

问题描述:

  1. json格式数据转换为字符串后console.log输出,在一行显示
  2. json格式数据转换为字符串保存到文件后,文件内容只显示在一行
  3. 将json格式数据显示在页面上,格式有问题

对于问题1和2,在json.stringify()中引入后两个参数,来规范转换格式。
JSON.stringify三个参数含义

const data = [
  {
    name: '张三',
    age: 18,
    sex: '男',
    where: {
      province: '湖南',
      city: '长沙',
      county: '岳麓区'
    }
  },
  {
    name: '李四',
    age: 22,
    sex: '男'
  },
  {
    name: '王五',
    age: 18,
    sex: '男'
  }
]
console.log(JSON.stringify(data))
console.log(JSON.stringify(data,'',2))  //第二个参数可为''或null或undefined ,第三个参数为数字的话代表空格个数
console.log(JSON.stringify(data,'','\t')) 

在这里插入图片描述


保存json数据到文件也直接这么处理就行

fs.writeFile('file.txt', JSON.stringify(data, null, 2), function(err){
  if(err){
    console.log('err=', err)
  }else{
    console.log('success')
  }
})

对于问题3.

由于页面不识别空格和\t,可以使用pre标签将字符串包含起来保留原格式

如果使用vuejs的话,还可以使用json-viewer插件

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>json美化</title>
</head>
<body>
	<h1>
		<pre id="code"></pre>
	</h1>

</body>
<script>
const data = [
  {
    name: '张三',
    age: 18,
    sex: '男',
    where: {
      province: '湖南',
      city: '长沙',
      county: '岳麓区'
    }
  },
  {
    name: '李四',
    age: 22,
    sex: '男'
  },
  {
    name: '王五',
    age: 18,
    sex: '男'
  }
]
document.getElementById('code').innerText = JSON.stringify(data,null,2);
</script>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值