JSON简介

JSON全称JavaScript Object Notation(JavaScript标记对象),是一种通用的轻量级的数据交换格式(如:java代码和js代码的数据交换),在js中JSON是以对象的形式存在,在现代开发中,JSON和xml是标准化的数据交换格式。其中JSON体积小,解析容易,语法相对松散;xml体积大,解析难,语法相对严格。
image.png

JSON对象

语法:
var jsonObj = {
“属性名” : 属性值,
“属性名” : 属性值,
….
}
通过“对象名.属性”即可访问属性

注意:(1)JSON是一种无类型的对象,直接一个大括号包起来就是一个JSON对象了。且属性值可以是
任意类型,包括一个对象、数组…
(2)[] 是数组对象,{} 是json对象

window.eval()方法

JavaScript是一种动态语言,使用eval可以把字符串当作一段js代码来执行,因此前后台实现数据交互的一般思路是:Java后台传过来JSON格式的字符串,js使用eval方法把JSON字符串转换成JSON对象,这样就可以获取对象的属性,也就得到了后台传过来的数据,实现了前后台的数据交互。如字符串:”{\”total\” : 2, \”students\” : [{\”name\”:\”李四\”,\”age\”:19},{\”name\”:\”王五\”,\”age\”:18}]}” 就是java后台传递过来的,注意其中的“\”仅仅指数转义字符,没有任何意义。

实例应用

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <script>
  9. var dataJAVA = "{\"total\" : 2, \"students\" : [{\"name\":\"李四\",\"age\":19},{\"name\":\"王五\",\"age\":18}]}";
  10. function show(){
  11. //把JSON形式的字符串转化为JSON对象,并命名为dataJSON
  12. window.eval("var dataJSON="+dataJAVA);
  13. //把数据的总条数赋值给对应的dom对象
  14. document.getElementById("totalSpan").innerHTML=dataJSON.total;
  15. var list=dataJSON.students;
  16. var text="";
  17. //拼接表格,遍历数组
  18. for(var i=0;i<list.length;i++){
  19. var stu=list[i];
  20. text+= "<tr>";
  21. text+="<td>"+(i+1)+"</td>";
  22. text+="<td>"+stu.name+"</td>";
  23. text+="<td>"+stu.age+"</td>";
  24. text+="</tr>";
  25. }
  26. document.getElementById("tbody").innerHTML=text; //innerHTML可以把后面的字符串当中html语法,
  27. 但如果改成innerText就没有该功能了
  28. }
  29. </script>
  30. </head>
  31. <body>
  32. <input type="button" id="btn" onclick="show()" value="查看所有学生信息"><hr>
  33. <table border="1px" width="40%">
  34. <tr>
  35. <th>序号</th>
  36. <th>学生姓名</th>
  37. <th>学生年龄</th>
  38. </tr>
  39. <tbody id="tbody">
  40. </tbody>
  41. </table>
  42. 总记录条数:<span id="totalSpan">0</span>
  43. </body>
  44. </html>

运行结果:
image.png
image.png