发表于: 2020-06-26 19:40:47
1 2119
今天完成的事情:
1.回顾任务
明天·计划的事情:
1.回顾任务
遇到的问题和收获:
JSON
JSON格式是一种文件传输的格式
JSON是一种格式,基于文本,优于轻量,用于交换数据
JSON是由一对大括号里面,由键值对组成,键名必须是双引号
JSON是JS对象的字符串表示法,它使用文本表示一个JS对象的信息,本质上是一个字符串。
对比内容 | JSON | JS对象 |
---|---|---|
键名 | 必须是加双引号 | 可允许不加、加单引号、加双引号 |
属性值 | 只能是数值(10进制)、字符串(双引号)、布尔值和null, 也可以是数组或者符合JSON要求的对象, 不能是函数、NaN, Infinity, -Infinity和undefined | 爱啥啥 |
逗号问题 | 最后一个属性后面不能有逗号 | 可以 |
数值 | 前导0不能用,小数点后必须有数字 | 没限制 |
为什么需要转义?
在js中我们使用的js对象进行处理,但是在与后端数据交换的时候,我们需要发送规定的json格式的字符串,所以在给后端发送或接受数据的时候,需要转义
json如何处理转义?
json字符串转js对象,调用parse方法:
js对象 = JSON.parse(json字符串);
js对象转json字符串,调用stringify方法
json字符串 = JSON.stringify(js对象);
由JSON字符串生成JSON对象时的转义问题?
原因:在用JSON.parse解析JSON对象时会对其中的转义符进行两次解析
比如'{"a":"b","b":"\\\\"}' //{a: "b", b: "\"},
首先解析器提取单引号括起来的字符串时认为第一个‘\’是用来转义第二个‘\’的 ,第三个‘\是用来’转义第四个‘\’, 结果输出字符串是{“a”:“b”,“b”:"\\"}。
然后正式转为js对象的时候还有一次转义, 也就是实际输出字符转中的第一个\转义第二个\(此时只有两个\),结果输出字符串是{“a”:“b”,“b”:"\"}。
所以说我们想要输出"\“时需要输入四个”\",不然会出错。
评论