html部分:
<input type="button" name="" id="displaybtn" value="查看学生信息列表" />
<table border="1px" width="40%">
<tr>
<th>序号</th>
<th>学生姓名</th>
<th>学生年龄</th>
</tr>
<tbody id="stutbody">
<tr>
<td>序号</td>
<td>名字</td>
<td>年龄</td>
</tr>
</tbody>
</table>
总记录条数:<span id="totalspan"/>
javascript部分:
<script type="text/javascript">
var fromjava="{\"total\":2,\"students\":[{\"name\":\"张三\",\"age\":20},{\"name\":\"李四\",\"age\":30}]}";
//接收java传来的字符串(里面放的是数据,将其转变为json格式。
window.onload=function()
//页面加载过程启动函数体
{
document.getElementById("displaybtn").onclick=function()
//绑定displaybtn,当单击button后,调用该函数
{
window.eval("var json =" + fromjava);
// 用eval将两个字符串连接起来,连接起来后的效果是:
// var json="{\"total\":2,\"students\":[{\"name\":\"张三\",\"age\":20},{\"name\":\"李四\",\"age\":30}]}";
//这个效果我感觉非常好,连接字符串完成之后就相当于一条赋值语句。
document.getElementById("totalspan").innerHTML=json.total;
//将json字符串当中的total传给span(数据的总个数)
var studentArry=json.students;
//创建一个数组接收students的所有值
var html="";
//创建一个空的字符串 方便后面字符串的拼接
for(var i=0;i<studentArry.length;i++)
//循环遍历数组
{
var s=studentArry[i];
//这一句可以省略,单后面的 s 要换成 studentArry[i]
html+="<tr>";
//给html字符串拼接 表开始标签<tr>
html+="<td>"+(i+1)+"</td>";
//拼接索引列
html+="<td>"+s.name+"</td>";
//拼接名字
html+="<td>"+s.age+"</td>";
//拼接年龄
html+="</tr>";
//拼接表结束标签
//拼接出的效果:
// <tr>
// <td>序号</td>
// <td>名字</td>
// <td>年龄</td>
// </tr>
}
document.getElementById("stutbody").innerHTML=html;
//这里注意用到的是innerHTML,他的作用是将字符串编译成html语法的形式
}
}
</script>
json 的作用就是一个桥梁的作用(C语言和Java ,python和Java,Java和JavaScript...)。在本段代码当中,json起到的作用是连接 java 和JavaScript。
eval的使用:本段代码用eval连接完字符串之后就相当于一条赋值语句。