JSON.stringify()参数理解

关于JSON.stringify后面接的三个参数

JSON.stringify()方法是将一个JavaScript值(对象或者数组)转换为一个 JSON字符串,,平时我们一般用到JSON.stringify()方法,只会用第一个参数,很少会接触第二个第三个参数。今天遇到了,就写下来方便以后自己学习。

第一个参数

如果只传一个参数,那么就是正常的将一值(对象或者数组)转换成JSON字符串。

var shy= [1, 2]
var my  = JSON.stringify(shy)
console.log(my ) // [1, 2]
console.log(typeof my ) // string
var shy= {
	a: 1,
	b: 2
}
var my = JSON.stringify(shy)
console.log(my ) // {a:1,b:2}
console.log(typeof my ) // string

第二个参数

第二个参数作用就是过滤,可以为一个过滤函数,也可以是一个数组。

1.函数

var data = {
	name: 'sunhy',
	info: {
		age: 24,
		sex: 'male'
	}
}
var shy = JSON.stringify(data, function (key, val) {
	console.log('key is %s', key)
	console.log('val is %s', typeof (val))
	return val
})
console.log(shy)

// key is 
// val is object
// key is name
// val is string
// key is info
// val is object
// key is age
// val is number
// key is sex
// val is string
// {"name":"sunhy","info":{"age":24,"sex":"male"}}

2.数组。

var data = {
	name: 'sunhy',
	info: {
		age: 24,
		sex: 'male'
	}
}
var shy = JSON.stringify(data, ['info', 'sex'])
console.log(shy)

// {"info":{"sex":"male"}}

第三个参数

用来控制结果字符串里面的间距。
可以是一个数字,可以是一个字符串
如果是一个数字, 则在字符串化时每一级别会比上一级别缩进多这个数字值的空格(最多10个空格);如果是一个字符串,则每一级别会比上一级别多缩进用该字符串(或该字符串的前十个字符)。

var data = {
	name: 'sunhy',
	info: {
		age: 24,
		sex: 'male'
	}
}
var shy = JSON.stringify(data, null, 4)
console.log(shy)

// {
//    "name": "sunhy",
//    "info": {
//        "age": 24,
//        "sex": "male"
//    }
// }

如果不加第三个参数,输出会只占一行

参数为字符串则是将占位符改为字符串,这里就不介绍了。

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值