JSON
JSON(JavaScript Object Notation:JS对象表示法)是一种轻量级的数据交换格式
用独立的编程语言文本格式来存储和表示数据
优点
易于阅读和编写,同时也是易于浏览器解析和生成,并有效地提升网络传输效率
与XML比较
JSON书写或解析时是一个对象,更容易解析;而XML是由用户自定义标签来存储数据。对于前端来说,不容易书写且解析起来较为困难
JSON文件内容
它可以是一个单值,也可以是一个对象,也可以是一个数组以及是对象和数组的结合
JSON在哪里编写
可以写在JavaScript代码中,也可以形成一个独立的.json文本文件
在JS中编写JSON数据时:如果值是字符串,可以用单或者双引号包含;
在独立的.json文件编写JSON数据时:
-
文件的扩展名必须是.json,JSON文件不是JS文件,不能出现任何的JS代码,它仅仅是一个文本文件
-
数据不能赋值给变量
-
键值对中的键必须用双引号括起来
-
键值对中的值如果是字符类型,必须用双引号括起来
-
在JSON文件中不能添加任何注释
JSON中的数据值
-
简单值:可以在JSON中表示字符串、数值、布尔值和null(JSON中不支持JavaScript的特殊类型underfined)
-
对象({ })
-
数组([ ])
解析JSON数据
解析JavaScript中的JSON数据
如果是JSON数据,可以直接访问;如果是JSON格式的字符串需要用JSON.parse()方法进行转换。
-
JSON.parse():将JSON格式的字符串转换为JSON
-
JSON.stringify():将JSON转换为JSON格式的字符串
解析.json文件
JSON文件必须用ajax(异步请求)技术去获取。
ajax请求操作步骤:
-
创建请求对象
var xhr = new XMLHttpRequest();
-
建立请求连接
xhr.open('get',url,true);// get/post:请求方式 true/false:true表示异步请求,false表同步操作 url:表示请求的路径
-
向后台发送请求
xhr.send();
-
前端对请求的结果进行处理
xhr.onreadystatechange = function () { if(xhr.readyState == 4 && xhr.status == 200){ // 如果请求成功 console.log(JSON.parse(xhr.responseText)); // responseTextr:获取请求的结果 } };
注意:如果发送ajax请求,必须以http(服务器端)的方式启动文件,不能在本地直接打开。