浅析ajax请求json数据并用js解析(示例分析)


Posted in Javascript onJuly 13, 2013

自从接触了jquery就喜欢上了前端开发,而且深深感受到了前端开发的强大与重要之处。同时也想为asp.net鸣不平,事实上asp.net并没有臃肿,说它臃肿的人无非是那些不了解它的人,可能他们看见过一些asp.net低级程序员在不断往页面里拖控件,然后发现生成的页面中含有大量的垃圾代码,而且几乎把所有的逻辑处理都写在了服务器端,觉得服务器压力太大了。事实上,刚入门asp.net的人会有拖控件的习惯,但是当你再深入你会发现,最终asp.net的开发模式还是跟PHP、jsp等其它web开发模式是一样的,PHP是html+css+js+PHP语言,asp.net是html+css+js+C#语言,唯一不同的只是服务器端语言而已(面向开发人员来说),如果看到这里还说asp.net很臃肿,因为需要.net框架的支持,那么为什么不说jsp很臃肿?jsp也需要java虚拟机的支持啊!所有的web开发都是基于客户端发请求-服务器端返回数据-客户端再处理数据这个模式,而且asp.net开发模式的好处在于很好地分离了服务器端与客户端的代码,不用在html里嵌套服务器端的代码——当然这种模式现在已经几乎被各种web开发采用了。

扯远了。我们今天要掌握的很少,我比较喜欢用很少的代码来写demo,这样大家比较容易掌握(内容有点低级,大神请绕道)。

我们建一个这样的web项目:

浅析ajax请求json数据并用js解析(示例分析)

首先写客户端的html代码

<table>
  <thead>
    <tr>
      <td>学号</td>
      <td>姓名</td>
      <td>班别</td>
      <td>性别</td>
      <td>电话</td>
    </tr>
  </thead>
  <tbody></tbody>
</table>
<input id="btnget" type="button" value="加载数据" />

js代码

$(function () {
  $("#btnget").click(function () {
    $.ajax({
      type: "post",
      dataType: "json",
      url: "data.ashx",
      success: function (msg) {
        var str = "";
        for (i in msg) {
          str += "<tr><td>" + msg[i].id + "</td><td>" + msg[i].name + "</td><td>" + msg[i].cla + "</td><td>" + msg[i].sex + "</td><td>" + msg[i].tel + "</td></tr>";
        }
        $("tbody").append(str);
      }
    });
  });
});

为了使表格好看一些,我们定义一下它的样式

<style type="text/css">
  table {
    border-collapse: collapse;
  }
  table td {
    text-align: center;
    border: 1px solid gray;
    padding: 3px 10px;
  }
</style>

然后写服务器端返回json数据的代码

string data = "[{\"id\":\"2010324268\",\"name\":\"林宇\",\"cla\":\"10软件\",\"sex\":\"男\",\"tel\":\"13800138000\"},{\"id\":\"2010324256\",\"name\":\"李四\",\"cla\":\"10网络\",\"sex\":\"女\",\"tel\":\"10010\"},{\"id\":\"2010324264\",\"name\":\"张三\",\"cla\":\"10软件\",\"sex\":\"男\",\"tel\":\"10086\"}]";
context.Response.Write(data);

这里我直接把json数据写好格式了。一般来说是需要从数据库把数据读取出来然后拼凑成json格式,或者可以使用别人写好的一些序列化成json数据的类,当然,我更建议你自己写一个,生成一个类库方便以后使用。

如果需要解释一下json是什么,它是和xml等等一些数据并列的一种数据格式,形如:[{"id":"1","name":"张三","age":"20"},{"id":"2","name":"李四","age":"18"}]这样的格式。

这应该是每个web开发的人员都应该掌握的基础技术吧。

Javascript 相关文章推荐
cloudgamer出品ImageZoom 图片放大效果
Apr 01 Javascript
基于jquery的页面划词搜索JS
Sep 14 Javascript
JS+css 图片自动缩放自适应大小
Aug 08 Javascript
javaScript arguments 对象使用介绍
Oct 18 Javascript
javascript禁用Tab键脚本实例
Nov 22 Javascript
js设置document.domain实现跨域的注意点分析
May 21 Javascript
通用无限极下拉菜单的实现代码
May 31 Javascript
Vue学习笔记进阶篇之多元素及多组件过渡
Jul 19 Javascript
在 Vue-CLI 中引入 simple-mock实现简易的 API Mock 接口数据模拟
Nov 28 Javascript
Vue 指令实现按钮级别权限管理功能
Apr 23 Javascript
微信公众号平台接口开发 获取access_token过程解析
Aug 14 Javascript
Node.js API详解之 zlib模块用法分析
May 19 Javascript
网页前端优化之滚动延时加载图片示例
Jul 13 #Javascript
JavaScript获取FCK编辑器信息的具体方法
Jul 12 #Javascript
javascript 实现 秒杀,团购 倒计时展示的记录 分享
Jul 12 #Javascript
jquery实现微博文字输入框 输入时显示输入字数 效果实现
Jul 12 #Javascript
jquery 滚动条事件简单实例
Jul 12 #Javascript
简约JS日历控件 实例代码
Jul 12 #Javascript
javascript中自定义对象的属性方法分享
Jul 12 #Javascript
You might like
php将数据库导出成excel的方法
2010/05/07 PHP
php中url函数介绍及使用示例
2014/02/13 PHP
php多文件上传下载示例分享
2014/02/20 PHP
php递归法读取目录及文件的方法
2015/01/30 PHP
PHP+MySQL统计该库中每个表的记录数并按递减顺序排列的方法
2016/02/15 PHP
jQuery的一些特性和用法整理小结
2010/01/13 Javascript
javascript 设为首页与加入收藏兼容多浏览器代码
2011/01/11 Javascript
JS的get和set使用示例
2014/02/20 Javascript
javascript跨域的4种方法和原理详解
2014/04/08 Javascript
JavaScript中操作字符串之localeCompare()方法的使用
2015/06/06 Javascript
动态加载jQuery的方法
2015/06/16 Javascript
tuzhu_req.js 实现仿百度图片首页效果
2015/08/11 Javascript
javascript实现的登陆遮罩效果汇总
2015/11/09 Javascript
有关Promises异步问题详解
2015/11/13 Javascript
JavaScript ES6的新特性使用新方法定义Class
2016/06/28 Javascript
js事件冒泡、事件捕获和阻止默认事件详解
2016/08/04 Javascript
js图片加载效果实例代码(延迟加载+瀑布流加载)
2017/05/12 Javascript
利用Vue.js实现求职在线之职位查询功能
2017/07/03 Javascript
angular2 ng2 @input和@output理解及示例
2017/10/10 Javascript
vue 监听屏幕高度的实例
2018/09/05 Javascript
[06:30]DOTA2英雄梦之声_第15期_死亡先知
2014/06/21 DOTA
[52:39]完美世界DOTA2联赛PWL S3 CPG vs Forest 第一场 12.16
2020/12/17 DOTA
python检测远程端口是否打开的方法
2015/03/14 Python
Python探索之SocketServer详解
2017/10/28 Python
Python 3.x 判断 dict 是否包含某键值的实例讲解
2018/07/06 Python
python实现在图片上画特定大小角度矩形框
2018/10/24 Python
使用Python Pandas处理亿级数据的方法
2019/06/24 Python
python 字典的打印实现
2019/09/26 Python
Pytorch中实现只导入部分模型参数的方式
2020/01/02 Python
Python HTMLTestRunner如何下载生成报告
2020/09/04 Python
Python如何急速下载第三方库详解
2020/11/02 Python
Vichy薇姿加拿大官网:法国药妆,全球专业敏感肌护肤领先品牌
2018/07/11 全球购物
深圳茁壮笔试题
2015/05/28 面试题
主题党日活动总结
2014/07/08 职场文书
go mod 安装依赖 unkown revision问题的解决方案
2021/05/06 Golang
Python趣味挑战之教你用pygame画进度条
2021/05/31 Python