一、认识JSON
1、简述json
json的全称为:JavaScript Object Notation,是一种轻量级的数据交互格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。【来自于百度百科】
JSON是一种取代XML的数据结构,和xml相比,它更小巧但描述能力却不差,
由于它的小巧所以网络传输数据将减少更多流量从而加快速度。
所以,JSON主要是用来传输数据或者作为配置文件使用,
因为他的性能超过了xml,所以说xml主键走出历史舞台。
2、用途是什么呢?
主要用于前端和后端的数据传输,因为前端语言和后端语言并不一样,json相当于媒人,可以被双方识别,以此做到数据互通。
3、那么JSON是什么呢?
JSON就是一串字符串 只不过元素会使用特定的符号标注。一种在各个编程语言中流通的数据格式,负责不同编程语言中的数据传递和交互。
{} 双括号表示对象
[] 中括号表示数组
-
“” 双引号内是属性或值
- 冒号表示后者是前者的值(这个值可以是字符串、数字、也可以是另一个数组或对象)
所以 {“name”: “Michael”} 可以理解为是一个包含name为Michael的对象
而[{“name”: “Michael”},{“name”: “Jerry”}]就表示包含两个对象的数组
当然了,你也可以使用{“name”:[“Michael”,“Jerry”]}来简化上面一部,这是一个拥有一个name数组的对象
PS:现在还有很多人存在一些误区,为什么{name:'json'}在检验时通过不了,
那是因为JSON官网最新规范规定,如果是字符串,那不管是键或值最好都用双引
号引起来,所以上面的代码就是{"name":"json"}
不要反驳,官网就是这么定义的。
二、序列化和反序列化
1、作为数据传输使用 涉及到序列化和反序列化
序列化 : 将JS中的对象转化为JSON
使用JSON对象中的stringify方法 内置一个参数 参数是对象
反序列化 : 将JSON转化为JS的对象
使用JSON.parse方法 内置一个对象 对象是JSON
代码示例如下:
<script>
var obj = {
name : 'sherlock',
age : 23,
sex : 'man'
};
console.log(obj);
console.log(typeof obj);
// 将对象转化为JSON
var json = JSON.stringify(obj);
console.log(json); // {"name":"sherlock","age":23,"sex":"man"}
console.log(typeof json); //string
// 将JSON转化为对象
var newObj = JSON.parse(json);
console.log(newObj);
console.log(typeof newObj);
</script>
2、手动编辑一个JSON 将其转化为对象
// 定义一个json
var json = '{"name":"marie","age":19,"sex":"女"}';
console.log(json);
console.log(typeof json);
// 转化为对象
var obj = JSON.parse(json);
console.log(obj);
console.log(typeof obj);
var json = '[{"name":"Sherlock","age":23,"sex":"男"},{"name":"Mary","age":19,"sex":"女"}]';
var obj = JSON.parse(json);
console.log(obj);
console.log(typeof obj);