JSON规则
1) 并列的数据之间用逗号(", ")分隔。
2) 映射用冒号(": ")表示。
3) 并列数据的集合(数组)用方括号("[]")表示。
4) 映射的集合(对象)用大括号("{}")表示。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JSON语法</title>
</head>
<body>
<p>数组存对象的 name 值为: <span id="name1"></span></p>
<p>对象存对象的 name 值为: <span id="name2"></span></p>
<script>
//数组存对象
var objectArr = [
{ "name":"runoob" , "url":"www.runoob.com" },
{ "name":"google" , "url":"www.google.com" },
{ "name":"微博" , "url":"www.weibo.com" }
];
document.getElementById("name1").innerHTML=objectArr[0].name;
//对象存对象
var arrObject = {
"temp1":{ "name":"runoob" , "url":"www.runoob.com" },
"temp2":{ "name":"google" , "url":"www.google.com" },
"temp3":{ "name":"微博" , "url":"www.weibo.com" }
};
document.getElementById("name2").innerHTML=arrObject.temp1.name;
for(var i in arrObject){
console.log(arrObject[i].name);//即temp1、temp2、temp3对象的具体属性值,实现跟数组对象的使用效果
}
console.log("\n");//换行
//嵌套对象
var moreObject = {
"name":"runoob",
"alexa":10000,
"sites": {
"site1":"www.runoob.com",
"site2":"m.runoob.com",
"site3":"c.runoob.com"
}
}
//在使用for遍历时,只能通过[] 来获取相应属性的值,而不能使用点语法(获取值为undefined)
for (var i in moreObject.sites) {//循环对象
console.log(i);//site1、site2、site3这些字符串
console.log(moreObject.sites[i]);//即·moreObject.sites.site1
}
console.log("\n");//换行
//嵌套数组
var moreArr={
"name":"网站",
"num":3,
"sites":[ "Google", "Runoob", "Taobao" ]
}
for (i in moreArr.sites) {//循环数组
console.log(moreArr.sites[i]);
}
for (i = 0; i < moreArr.sites.length; i++) {//for循环访问数组
console.log(moreArr.sites[i]);
}
//JSON.parse函数将字符串转换为 JavaScript 对象
var jsonStr1='{ "name":"runoob", "alexa":10000, "site":"www.runoob.com" }';
var obj1 = JSON.parse(jsonStr1);
console.log("\n"+obj1.name + ":" + obj1.site);
//JSON.stringify() 方法将 JavaScript 对象转换为字符串。(可以转换数组包裹或对象包裹的对象)
var obj2 = { "name":"runoob", "alexa":10000, "site":"www.runoob.com"};
var jsonStr2 = JSON.stringify(obj2);
console.log("\n"+jsonStr2);
</script>
</body>
</html>