千锋教育JavaScript全套视频教程(10天学会Js,前端javascrip

JSON:JS对象表示法
JSON数据:可以是数组、对象、数组和对象的结合
JSON数据的存在: 前后端的交互主要体现在数据上
无论后端是什么语言,给到我们前端都是JS能识别的数据形式(JSON数据)
JSON含义:JSON是一种非常重要的数据格式,它并不是编程语言,而是一种可以在服务器和客户端之间传输的数据格式。
JSON基本语法:
JSON的顶层支持三种类型的值:
简单值:数值(Number)、字符串(String,不支持单引号)、布尔类型(Boolean)、null类型
对象值:由key、value组成,key是字符串类型,且必须添加双引号,值可以是简单值、对象值、数组值
数组值:数组的值可以是简单值、对象值、数组值
注意:
1、复合类型的值只能是数组或对象,不能是函数、正则表达式对象、日期对象
2、原始类型的值只有四种:字符串、数值(必须以十进制表示)、布尔值和null(不能使用NaN, Infinity, -Infinity和undefined)
3、字符串必须使用双引号表示,不能使用单引号
4、对象的键名必须放在双引号里面
5、数组或对象最后一个成员的后面,不能加逗号
JSON序列化:
复杂类型转化成JSON格式的字符串遇到的问题:
比如我们希望将一个对象保存到localStorage中,但是如果我们直接存放一个对象,这个对象会被转化成[object Object] 格式的字符串,并不是我们想要的结果
JSON序列化方法:
在ES5中引用了JSON全局对象,该对象有两个常用的方法:
@1、stringify方法:将JavaScript类型转成对应的JSON字符串
语法:JSON.stringify(value[, replacer [, space]])
value:将要序列化成 一个JSON字符串的JavaScript对象或值
replacer 可选,用于处理将要序列化的值
replacer参数:
1、如果是null、undefined或其他类型,则被忽略,不做处理
2、如果是一个数组,则只有包含在这个数组中的属性名,才会最终被序列化到结果字符串中,只对对象的属性有效,对数组无效
3、如果是一个函数,被序列化的值的每个属性都会经过该函数的转换和处理
space 可选,指定缩进用的空白字符串,用于美化输出
返回值: 一个表示给定值的JSON格式字符串
@2、parse方法:解析JSON字符串,转回对应的JavaScript类型
语法:JSON.parse(text[, reviver])
text:要被解析成的字符串。
如果传入数字则会转换成十进制数字输出。
如果传入布尔值则直接输出。
如果传入null则输出null。
不支持其他类型的值,否则报错。
reviver: 可选,转换器, 可以用来修改解析生成的原始值
返回值: JavaScript对象/值, 对应给定JSON文本的对象/值