浅析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 相关文章推荐
JavaScript 函数式编程的原理
Oct 16 Javascript
JS控制一个DIV层在指定时间内消失的方法
Feb 17 Javascript
jQuery级联操作绑定事件实例
Sep 02 Javascript
事件委托与阻止冒泡阻止其父元素事件触发
Sep 02 Javascript
javascript实现博客园页面右下角返回顶部按钮
Feb 22 Javascript
详解JavaScript逻辑And运算符
Dec 04 Javascript
使用JS轻松实现ionic调用键盘搜索功能(超实用)
Sep 06 Javascript
详解Angular-Cli中引用第三方库
May 21 Javascript
微信小程序wx.navigateTo方法里的events参数使用详情及场景
Jan 07 Javascript
vue父子组件间引用之$parent、$children
May 20 Javascript
vue实现循环滚动列表
Jun 30 Javascript
微信小程序选择图片控件
Jan 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使用imagick读取PDF生成png缩略图的两种方法
2014/03/20 PHP
php连接odbc数据源并保存与查询数据的方法
2014/12/24 PHP
PHP获取当前系统时间的方法小结
2018/10/03 PHP
PHP单元测试框架PHPUnit用法详解
2019/01/23 PHP
javascript 常用关键字列表集合
2007/12/04 Javascript
用户注册常用javascript代码
2009/08/29 Javascript
学习JavaScript的最佳方法分享
2011/10/21 Javascript
深入理解JavaScript系列(6):S.O.L.I.D五大原则之单一职责SRP
2012/01/15 Javascript
jQuery动态地获取系统时间实现代码
2013/05/24 Javascript
左侧是表头的JS表格控件(自写,网上没有的)
2013/06/04 Javascript
js利用事件的阻止冒泡实现点击空白模态框的隐藏
2014/01/24 Javascript
js格式化金额可选是否带千分位以及保留精度
2014/01/28 Javascript
Jquery幻灯片特效代码分享--打开页面随机选择切换方式(3)
2015/08/15 Javascript
基于javascript简单实现对身份证校验
2021/01/25 Javascript
BootStrap Progressbar 实现大文件上传的进度条的实例代码
2016/06/27 Javascript
JS获取url参数、主域名的方法实例分析
2016/08/03 Javascript
原生JS实现几个常用DOM操作API实例
2017/01/19 Javascript
Angular设置别名alias的方法
2018/11/08 Javascript
vue动态添加路由addRoutes之不能将动态路由存入缓存的解决
2019/02/19 Javascript
jQuery实现图片下载代码
2019/07/18 jQuery
解析原来浏览器原生支持JS Base64编码解码
2019/08/12 Javascript
Bootstrap实现模态框效果
2019/09/30 Javascript
element跨分页操作选择详解
2020/06/29 Javascript
Python自动化测试工具Splinter简介和使用实例
2014/05/13 Python
python函数局部变量用法实例分析
2015/08/04 Python
Python字符串通过'+'和join函数拼接新字符串的性能测试比较
2019/03/05 Python
Win10系统下安装labelme及json文件批量转化方法
2019/07/30 Python
python中设置超时跳过,超时退出的方式
2019/12/13 Python
如何在mac下配置python虚拟环境
2020/07/06 Python
Python3爬虫中识别图形验证码的实例讲解
2020/07/30 Python
pycharm配置安装autopep8自动规范代码的实现
2021/03/02 Python
小学红领巾中秋节广播稿
2014/01/13 职场文书
知识竞赛活动方案
2014/02/18 职场文书
出纳员岗位职责风险
2014/03/06 职场文书
家长通知书家长评语
2014/04/17 职场文书
2015年大学班主任工作总结
2015/04/30 职场文书