1. JSON:JavaScript Object Notation
- JSON 是轻量级的数据交换格式 (纯文本)
- JSON 比 XML 更小、更快,更易解析
- JSON语法
JSON语法是JS对象表示语法的子集,有如下特点:
- 数据在键值对中(键名即属性名必须加双引号)
- 数据由逗号分隔
- 花括号保存对象
- 方括号保存数组
JSON 可通过 JavaScript 进行解析
JSON 值可以是:数字、字符串、逻辑值、数组(在中括号中)、
对象(在大括号中)、null
注意JSON不能存储Date对象,如果需要则用字符串表示
json对象示例
var jsonObj = {
"name":"wust",//注:js对象的key值一般不用双引号引着
"url":"www.wust.edu.cn",
"age":120
};
访问:与js对象访问相同
jsonObj.url 或 jsonObj["url"] // "www.wust.edu.cn"
jsonObj.url = "…" //修改
json对象遍历
//json对象遍历(注:x是key值)
for( var x in jsonObj ) {
document.write( x+":" + jsonObj[x] + "<br>" )
}
json嵌套示例
var jsonObj = {
"name": "datacode",
"code": {
"cs": 100,
"se": 101,
"ne": 102
}
};
访问:
jsonObj.code.cs 或 jsonObj.code["cs"] //100
jsonObj.code.cs="1000" //修改
遍历嵌套:
for(var key in jsonObj.code) {
document.write( jsonObj.code[key] +"<br>")
}
json值为数组示例
var jsonObj = {
"name": "网站",
"num": 3,
"sites": ["Google", "Sina", "Taobao"]
};
访问:
jsonObj.sites[0] // "Google"
jsonObj.sites[0] ="Wust" //修改
遍历数组:
for( var i=0; i < jsonObj.sites.length; i++ )
document.write( jsonObj.sites[i] +"<br>")
数组元素是json对象
var jsonObj = {
"sites": [ { "name": "wust", "url": "www.wust.edu.cn" },
{ "name": "google", "url": "www.google.com" },
{ "name": "weibo", "url": "www.weibo.com" } ]
};
访问:
jsonObj.sites[0].url // "www.wust.edu.cn"
jsonObj.sites[0].url="…" //修改
遍历数组元素:
for ( var i=0; i < jsonObj.sites.length; i++ )
document.write( jsonObj.sites[i].url )
练习题:如何遍历info值
myjsonObj = {
"name": "网站",
"num": 3,
"sites": [ { "name": "Google", "info": ["Android", "Google搜索", "Google翻译"] },
{ "name": "Tencent", "info": ["QQ", "微信", "网游"] },
{ "name": "Taobao", "info": ["淘宝", "天猫"] }
]
};
for ( var i = 0; i < myjsonObj.sites.length; i++ )
for( var j = 0; j < myjsonObj.sites[i].info.length; j++ ) {
document.write( myjsonObj.sites[i].name + ":" )
document.write( myjsonObj.sites[i].info[j] + "<br>");
}