JSON
JSON是一种数据格式,并非一种语言,很多语言中都会有json这种数据格式。
JSON.stringify()的三个参数
JSON的方法stringify() 里面有三个参数 stringify(object,Array|function,number|string); 这三个参数分别是 数据,过滤,缩进。转成的JSON数据格式的属性和属性值都是以双引号引起来的,如果有属性的值为undefined会默认转成空格。
const obj = {
name: '张三',
age: '20',
school: [
'某某小学', '某某中学'
]
}
const json = JSON.stringify(obj);
console.log(json) //{"name":"张三","age":"20","school":["某某小学","某某中学"]}
上面方法默认只传一个参数的时候会把对象转成属性和属性值都使用双引号包裹起来,的JSON数据格式
const json1 = JSON.stringify(obj, ['age'])
console.log(json1) //{"age":"20"}
第二个参数传了一个 数组[‘age’] 意思就是只过滤出对象中属性为age的属性名
const json1 = JSON.stringify(obj, ['age'])
console.log(json1) //{"age":"20"}
上面代码的意思就是第二个参数传一个数组的时候 只过滤数组中的属性
第二个参数传一个函数
const json2 = JSON.stringify(obj, function (key, value) {
switch (key) {
case "name":
return '李四'
case "age":
return 30
case "school":
return undefined
default:
return value
}
})
console.log(json2) //{"name":"李四","age":30}
上面代码的的意思是传一个函数的时候按switch的逻辑去过滤数据
第三个参数传一个number类型
const json3 = JSON.stringify(obj, null, 4)
console.log(json3)
上面的代码意思就是传number 4 默认缩进 4个空格 最大为10 最小为 1 超过10 就会默认为10个空格
第三个参数传一个字符串类型
//第三个参数 传字符串 '----' 默认缩进 '----'
const json4 = JSON.stringify(obj, null, '----')
console.log(json4)
上面的代码意思就是传string 4个 - 默认缩进 4个 - 最大字符串长度为10 最小为 1 超过10 就会默认为10个字符串长度。