1.JSON 是 JS 对象表示法,即以JS对象的方式来表现出来的字符串
(1)用一对 { } 来表示一个对象
(2)对象的属性名称,必须用 " " 属性引起来,值如果是字符串,也必须用 " " 引起来
(3)属性 与 值,用 :连接
(4)多对属性 与 值 之间,用 , (逗号)分开
创建一个对象:liming,他的三个属性如下所示,表示出属性并打印在控制台
height , 值为 185
weight , 值为 80
gender , 值为 男
var liming = { height:185, weight:80, gender:"男" } console.log(liming.height); console.log(liming.weight); console.log(liming.gender);
当定义两个对象,并打印两个对象的信息
//xiaohua的信息 var xiaohua = { height:165, weight:50, gender:"女" } //liming的信息 var liming = { height:185, weight:80, gender:"男" } //定义一个数组用于存放以上信息 var arr = [xiaohua,liming]; for(var i=0;i<arr.length;i++){ var s = arr[i] console.log(s.height,s.weight,s.gender); }
将 xiaohua 和 liming 的信息写在数组中,代码为:
var arr = [{ height:165, weight:50, gender:"女" }, { height:185, weight:80, gender:"男" } ]; for(var i=0;i<arr.length;i++){ var s = arr[i] console.log(s.height,s.weight,s.gender); }
2.JSON数组
(1)普通数组表现 : ‘["李明","小花"]‘
(2)对象的数组:
‘[ { height:165, weight:50, gender:"女" }, { height:185, weight:80, gender:"男" } ]‘
(3)JSON文件
创建一个文件,以 ***.json 作为后缀,该文件中的数据必须是符合JSON格式的字符串
(4)将JSON字符串,转成 JS对象 / 数组
使用 eval() (容易出错)
var p = ‘{"name":"li","age":25}‘; var obj = eval("("+p+")");
使用 JSON.parse() 来解析 JSON字符串得到的JS对象
var obj = JSON.parse(p)
练习:
创建一个user.json文件,里边包含一个数组,数组有三个对象,每个对象包含 uname , upwd, gender 属性,分别赋值,并创建一个 getusers.html , 使用异步的方式向 user.json发送一个请求,并按照顺序将数据打印在控制台中
user.json
[ { "uname":"abcabc", "upwd":123123, "gender":"男" }, { "uname":"abcde", "upwd":123456, "gender":"女" }, { "uname":"王大锤", "upwd":111111, "gender":"男" } ]
getusers.html
<script src="common.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript"> function showJSON(){ //1.创建xhr对象 //2.创建请求 //3.设置响应事件 //4.发送请求 var xhr = createXhr(); xhr.open("GET","users.json",true); xhr.onreadystatechange = function(){ if(xhr.readyState==4&&xhr.status==200){ var resText = xhr.responseText; var persons = JSON.parse(resText); for(var i=0;i<persons.length;i++){ var per = persons[i]; console.log(per.uname,per.upwd,per.gender); } } } xhr.send(null); }
3.在php中,可以直接将数组(一维,二维,关联) 转换成JSON格式的字符串
php中通过 : json_encode() 将数组转换为JSON字符串
语法:$str = json_encode($array);
注意:如果服务器端响应回来的数据是JSON格式的,需要增加响应消息头
header("Content-Type:application/json");