一、什么是JSON:
- JavaScript Object Notation。
- 是一种标准的轻量级的数据交换格式,很常用。
- JSON在JS中以对象的形式存在
- 体积小,易解析。
在实际开发中有两种数据交换格式:JSON、XML。XML体积大,语法严谨。 - json对象是大括号,数组是中括号。
二、JSON语法格式:
- 创建JSON对象:
<script>
var jsonObj = {
"属性名" : 属性值,如果是字符串,则属性值也要加""
"属性名" : 属性值,
"属性名" : 属性值,
"属性名" : 属性值,
....
};
</script>
- 访问JSON对象的属性:
<script>
方法一:
jsonObj.属性名;
方法二:
jsonObj["属性名"]
</script>
- 设计JSON格式的数据:例子
<script>
var jsonData = {
"total" : 3,
"students" : [
{"name":"zhangsan","birth":"1980-10-20"},
{"name":"lisi","birth":"1981-10-20"},
{"name":"wangwu","birth":"1982-10-20"}
]
};
</script>
三、eval函数:
- eval函数的作用是:
将字符串当做一段JS代码解释并执行, 用于将后端传来的字符串转成json对象。
类比innerHTML,innerHTML是把字符串当做HTML代码解释并执行。 - 用法:
<script>
var fromJava = "{\"name\":\"zhangsan\",\"password\":\"123\"}";
window.eval("var jsonObj = " + fromJava);
alert(jsonObj.name + "," + jsonObj.password);
</script>
四、parse函数:
JSON.parse
函数的作用:
将json格式的字符串转换为json对象.- 用法:
<script>
var fromJava = "{\"name\":\"zhangsan\",\"password\":\"123\"}";
var jsonobj = JSON.parse(fromJava);
alert(jsonObj.name + "," + jsonObj.password);
</script>
五、如何展示json对象的内容:
- 以下代码的作用:
用户点击按钮,可以将JSON对象data中的数据展示到web页面。
注意:json对象是大括号,数组是中括号。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>设置table的tbody</title>
</head>
<body>
<script type="text/javascript">
var data = {
"total" : 4,
"emps" : [
{"empno":7369,"ename":"SMITH","sal":800.0},
{"empno":7361,"ename":"SMITH2","sal":1800.0},
{"empno":7360,"ename":"SMITH3","sal":2800.0},
{"empno":7362,"ename":"SMITH4","sal":3800.0}
]
};
window.onload = function(){
var displayBtnElt = document.getElementById("displayBtn");
displayBtnElt.onclick = function(){
var emps = data.emps;
var html = "";
for(var i = 0; i < emps.length; i++){
var emp = emps[i];
html += "<tr>";
html += "<td>"+emp.empno+"</td>";
html += "<td>"+emp.ename+"</td>";
html += "<td>"+emp.sal+"</td>";
html += "</tr>";
}
document.getElementById("emptbody").innerHTML = html;
document.getElementById("count").innerHTML = data.total;
}
}
</script>
<input type="button" value="显示员工信息列表" id="displayBtn" />
<h2>员工信息列表</h2>
<hr>
<table border="1px" width="50%">
<tr>
<th>员工编号</th>
<th>员工名字</th>
<th>员工薪资</th>
</tr>
<tbody id="emptbody">
</tbody>
</table>
总共<span id="count">0</span>条数
</body>
</html>