什么是JSON字符串:
JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。它基于 ECMAScript 的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
json的类型转换:
JSON.stringify() 是对象转字符串类型
JSON.parse() 是字符串转转对象类型
json中的几大特性:
第一大特性:
1.undefined、任意的函数以及 symbol 作为对象属性值时 JSON.stringify() 将跳过 (忽略)对它们进行序列化;
2.undefined、任意的函数以及 symbol 作为数组元素值时,JSON.stringify() 会将它们序列化为 null;
3.undefined、任意的函数以及 symbol 被 JSON.stringify() 作为单独的值进行序列化时都会返回 undefined;
第二大特性:
非数组对象的属性不能保证以特定的顺序出现在序列化后的字符串中。 (正如第一特性所说,JSON.stringify() 序列化时会忽略一些特殊的值,所以不能保证序列化后的字符串还是以特定的顺序出现(数组除外))
第三大特性:
JSON.stringify()会正常序列化Date的值。(实际上Date对象自己部署了toJSON()方法(同Date.toISOString()),因此Date对象会被当做字符串处理)
第四大特性:
可以使用JSON.parse(JSON.stringify())最简单粗暴的实现深拷贝。这个方式实现深拷贝会因为序列化的诸多特性从而导致诸多的坑点,对包含循环引用的对象(对象之间相互引用,形成无限循环)执行此方法,会抛出错误。