浅析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的面向对象方法以及差别
Mar 31 Javascript
改进版通过Json对象实现深复制的方法
Oct 24 Javascript
JS远程获取网页源代码实例
Sep 05 Javascript
jQuery插件multiScroll实现全屏鼠标滚动切换页面特效
Apr 12 Javascript
使用coffeescript编写node.js项目的方法汇总
Aug 05 Javascript
微信小程序(六):列表上拉加载下拉刷新示例
Jan 13 Javascript
微信小程序自定义prompt组件步骤详解
Jun 12 Javascript
使用jquery Ajax实现上传附件功能
Oct 23 jQuery
react的滑动图片验证码组件的示例代码
Feb 27 Javascript
在JavaScript中使用严格模式(Strict Mode)
Jun 13 Javascript
PHP读取远程txt文档到数组并实现遍历
Aug 25 Javascript
CentOS 8.2服务器上安装最新版Node.js的方法
Dec 16 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 strlen mb_strlen计算中英文混排字符串长度
2009/07/10 PHP
PHP取整函数:ceil,floor,round,intval的区别详细解析
2013/08/31 PHP
eaglephp使用微信api接口开发微信框架
2014/01/09 PHP
php中$美元符号与Zen Coding冲突问题解决方法分享
2014/05/28 PHP
ThinkPHP模板中判断volist循环的最后一条记录的验证方法
2014/07/01 PHP
php函数与传递参数实例分析
2014/11/15 PHP
php对象和数组相互转换的方法
2015/05/12 PHP
用js得到网页中所有的div的id
2020/10/19 Javascript
js判断变量是否空值的代码
2008/10/26 Javascript
js 创建快捷方式的代码(fso)
2010/11/19 Javascript
js 优化次数过多的循环 考虑到性能问题
2011/03/05 Javascript
js中符号转意问题示例探讨
2013/08/19 Javascript
获取阴历(农历)和当前日期的js代码
2016/02/15 Javascript
jQuery模拟完美实现经典FLASH导航动画效果【附demo源码下载】
2016/11/09 Javascript
详解nodejs实现本地上传图片并预览功能(express4.0+)
2017/06/28 NodeJs
将angular.js项目整合到.net mvc中的方法详解
2017/06/29 Javascript
vue实现消息的无缝滚动效果的示例代码
2017/12/05 Javascript
详解CommonJS和ES6模块循环加载处理的区别
2018/12/26 Javascript
element-ui tooltip修改背景颜色和箭头颜色的实现
2019/12/16 Javascript
[04:59]2018DOTA2亚洲邀请赛 4.7 Mineski夺冠时刻
2018/04/09 DOTA
python中的yield使用方法
2014/02/11 Python
python安装oracle扩展及数据库连接方法
2017/02/21 Python
python和ruby,我选谁?
2017/09/13 Python
深入浅析Python中的yield关键字
2018/01/24 Python
python之信息加密题目详解
2019/06/26 Python
Lenox官网:精美的瓷器&独特的礼品
2017/02/12 全球购物
绘儿乐产品官方在线商店:Crayola.com
2019/09/07 全球购物
实习生自荐信范文分享
2013/11/27 职场文书
中英文自我评价语句
2013/12/20 职场文书
星级党支部申报材料
2014/05/31 职场文书
财务会计专业求职信
2014/06/09 职场文书
低碳生活的宣传标语
2014/06/23 职场文书
css3实现背景图片半透明内容不透明的方法示例
2021/04/13 HTML / CSS
深度学习小工程练习之垃圾分类详解
2021/04/14 Python
Java Socket实现多人聊天系统
2021/07/15 Java/Android
Java GUI编程菜单组件实例详解
2022/04/07 Java/Android