目前我用到的四种情况两大类
一:判断对象是否为空对象
JSON.stringify(obj) === "{}"
//比如判断对象obj是不是空对象
if (JSON.stringify(obj) === "{}") {
console.log('123');
}
二:布尔值、数字、字符串的包装对象在序列化过程中会自动转换成对应的原始值
console.log(typeof JSON.stringify(new String('123')), JSON.stringify(new String('123'))) // string "123"
console.log(typeof JSON.stringify(new Number(123)), JSON.stringify(new Number(123))) // string "123"
console.log(typeof JSON.stringify(new Boolean(false)), JSON.stringify(new Boolean(false))) // string "false"
补充:JSON.parse(“要转换的数据”)和JSON.stringify(“要转化的数据”)的差别与用法
一、JSON.stringify() 从一个对象中解析出字符串
JSON.stringify({"a":"1","b":"2"})
// 结果是:"{"a":"1","b":"2"}"
JSON.parse()从一个字符串中解析出JSON对象
var str = '{"a":"1","b":"2"}';
JSON.parse(str);
// 结果是:Object{a:"1",b:"2"}
此外在使用JSON.parse()需要注意一点,由于此方法是将JSON字符串转换成对象,所以你的字符串必须符合JSON格式,即键值都必须使用双引号包裹
let a = '["1","2"]';
let b = "['1','2']";
console.log(JSON.parse(a));// Array [1,2]
console.log(JSON.parse(b));// 报错
拓展:使用JSON.stringify()与JSON.parse()来实现深拷贝不影响原数据
//深拷贝
function deepClone(data) {
let _data = JSON.stringify(data),
dataClone = JSON.parse(_data);
return dataClone;
};
//测试
let arr = [1,2,3],
_arr = deepClone(arr);
arr[0] = 2;
console.log(arr,_arr)//[2,2,3] [1,2,3]
这是我处理数据遇到问题得到解决并做的笔记希望对你们有帮助。