JSON及axios应用

打印 上一主题 下一主题

主题 959|帖子 959|积分 2887

JSON–JS的对象(Java中的字符串)


JSON相对于XML的上风:
JSON更小:相同的信息量来说的话,JSON格式更小
JSON更快:传输速度更快
更容易解析:JSON的解析比XML要简单的多

JSON的语法
1、{} 大括号表示一个JSON的对象
2、[ ]中扩号表示一个JSON的对象的数组

  1、对象类型
  {属性名1:值1,属性名2:值2,…}
  2、数组类型
  [
  {属性名1:值1,属性名2:值2,…},
  {属性名1:值1,属性名2:值2,…},
  {属性名1:值1,属性名2:值2,…}
  ]
  3、复杂对象
  {
  name:value,
  sex:value,
  hobbies:[
  {name:‘足球’,属性名2:值2,…},
  {name:‘足球’,属性名2:值2,…}
  ]
}

json的类型:
1、name必须是string类型–》建议加上一个双引号
2、value必须是如下类型之一:
  字符串—》用双引号进行包裹
  数字
  对象(JSON对象)
  数组
  布尔
  null

  1. <script type="text/javascript">
  2.       /*
  3.           json介绍
  4.             1.定义格式 1:{key:value,key:value,...}
  5.             2.定义格式 2:
  6.                 [{key:value,key:value,...},{key:value,key:value,...},{key:value,key:value,...},...]
  7.             3.定义格式 3:
  8.                 {key:value,key:[key:value,key1:value1,...],key:value,...}
  9.        */
  10.         let person={
  11.             "name":"张三",
  12.             "age":18,
  13.             "sex":"男",
  14.             "address":"北京",
  15.         }
  16.         //1、获取json对象中的value数据
  17.         //1.1、通过对象名.属性名
  18.         console.log(person.name);
  19.         console.log(person.age);
  20.         // json数组
  21.         let addr=[
  22.             {
  23.                 "name":"张三",
  24.                 "age":18,
  25.                 "sex":"男",
  26.                 "address":"北京"
  27.             },
  28.             {
  29.                  "name":"李四",
  30.                  "age":19,
  31.                  "sex":"男",
  32.                  "address":"上海"   
  33.             }
  34.         ];
  35.         //通过遍历数组获取json对象
  36.         for(let i=0;i<addr.length;i++){
  37.             console.log(addr[i].name);
  38.         }
  39.         console.log(addr[1].address);
  40.   </script>
复制代码

axios和JSON的综合使用

1、将相干的数据(通过模版字符串的情势`${}`)拼接到content变量中 -->注意这里的是反引号不是单引号esc键下面的按键
content+=`<tr>
  <td>${name}</td>
  <td>${id}</td>
  <td>${age}</td>
</tr>`
2、通过标签对象的innerHTML属性设置标签中的值(不止是文本)也可以是其他的子标签
详细代码
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <title>Title</title>
  6. </head>
  7. <body>
  8. <h1>ajax和json综合</h1>
  9. <!--
  10.     获取好友列表
  11. -->
  12. <input type="button" value="响应数据是json字符串" onclick="method01()"> <br>
  13. <hr>
  14. <h3>好友列表</h3>
  15. <!--存放查询好友的结果信息-->
  16. <div id="messageDiv"></div>
  17. <table width="500px" cellspacing="0px" cellpadding="5px" border="1px" id="myTable">
  18.     <tr>
  19.         <th>id</th>
  20.         <th>name</th>
  21.         <th>age</th>
  22.     </tr>
  23.     <!--<tr>
  24.         <td></td>
  25.         <td></td>
  26.         <td></td>
  27.     </tr>-->
  28. </table>
  29. </body>
  30. <!--导入axios库-->
  31. <script src="js/axios-0.18.0.js"></script>
  32. <script type="text/javascript">
  33.     /*
  34.       需求:向后台发送请求,获取好友列表并显示到页面中
  35.       说明:后台的url地址: "http://localhost:8080/axiosJsonDemo01Servlet"
  36.      */
  37.      function method01() {
  38.         //向后台发送请求
  39.         axios.get("http://localhost:8080/axiosJsonDemo01Servlet")
  40.             .then(Response=>{
  41.                 //测试是否绑定成功
  42.                 // console.log("绑定成功");
  43.                 console.log(Response.data);
  44.                 // 定义一个变量来接收响应的数据变量
  45.                 let result=Response.data;
  46.                 /*
  47.                 result={
  48.                     "flag": "true",
  49.                     "message": "查询好友列表成功",
  50.                     "valueData": [
  51.                          {"age": 18, "id": '001', "name": '张三'},
  52.                          {"age": 19, "id": '002', "name": '李四'},
  53.                          {"age": 20, "id": '003', "name": '王五'}
  54.                     ]
  55.                 }
  56.                 */
  57.                 // 1、判断flag的值,如果是true,说明查询成功
  58.                 if(result.flag){
  59.                     // 2、获取message的值
  60.                     let message = result.message;
  61.                     //3、将message的值显示到页面中去--->通过标签对象的innerHTML属性设置标签中的值(不止是文本)也可以是其他的子标签
  62.                     document.getElementById("messageDiv").innerHTML=message;
  63.                     // 4、通过一个变量存储valueData的值
  64.                     let valueData = result.valueData;
  65.                     //4.1定义一个变量用来存储table标签中的内容
  66.                     let content="";
  67.                     // 5、遍历valueData数组,获取数组中的每一个json对象
  68.                     for(let i=0;i<valueData.length;i++){
  69.                         // 6、获取每一个json对象中的数据
  70.                         let id = valueData[i].id;
  71.                         let name = valueData[i].name;
  72.                         let age = valueData[i].age;
  73.                         // 7、将相关的数据拼接到content变量中-->注意这里的是反引号不是单引号esc键下面的按键
  74.                         content+=`<tr>
  75.                                     <td>${id}</td>
  76.                                     <td>${name}</td>
  77.                                     <td>${age}</td>
  78.                                 </tr>`;
  79.                     }
  80.                     // 打印Content的内容
  81.                     console.log(content);
  82.                 //    8、将content变量中的内容拼接到现有的table标签中去
  83.                 //    document.getElementById("myTable").innerHTML=content;---》错误写法这样显示出来的内容会覆盖掉原来的内容(不显示表头)
  84.                 //    正确的做法:先获取到table标签中的内容,然后将content变量中的内容拼接到原来的内容后面
  85.                 document.getElementById("myTable").innerHTML+=content;
  86.                 }
  87.             });
  88.         
  89.     }
  90. </script>
  91. </html>
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

来自云龙湖轮廓分明的月亮

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表