浅析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 DOM 学习第九章 选取范围的介绍
Feb 19 Javascript
Chrome中模态对话框showModalDialog返回值问题的解决方法
May 25 Javascript
js实现滑动触屏事件监听的方法
May 05 Javascript
jQuery实现的图文高亮滚动切换特效实例
Aug 10 Javascript
asp知识整理笔记3(问答模式)
Sep 27 Javascript
详解JavaScript数组和字符串中去除重复值的方法
Mar 07 Javascript
jQuery中设置form表单中action值的实现方法
May 25 Javascript
JavaScript数据结构链表知识详解
Nov 21 Javascript
JS运动特效之任意值添加运动的方法分析
Jan 24 Javascript
vue实现多组关键词对应高亮显示功能
Jul 25 Javascript
详解mpvue开发微信小程序基础知识
Sep 23 Javascript
使用Element的InfiniteScroll 无限滚动组件报错的解决
Jul 27 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 分页原理分析,大家可以看看
2009/12/21 PHP
PHP图形操作之Jpgraph学习笔记
2015/12/25 PHP
PHP的数组中提高元素查找与元素去重的效率的技巧解析
2016/03/03 PHP
Zend Framework过滤器Zend_Filter用法详解
2016/12/09 PHP
php实现的统计字数函数定义与使用示例
2017/07/26 PHP
thinkPHP5分页功能实现方法分析
2017/10/25 PHP
JavaScript 比较时间大小的代码
2010/04/24 Javascript
别了 JavaScript中的isXX系列
2012/08/01 Javascript
用jquery生成二级菜单的实例代码
2013/06/24 Javascript
js中使用replace方法完成某个字符的转换
2014/08/20 Javascript
js onmousewheel事件多次触发问题解决方法
2014/10/17 Javascript
jQuery事件委托之Safari
2016/07/05 Javascript
NodeJS学习笔记之Module的简介
2017/03/24 NodeJs
nodejs创建简易web服务器与文件读写的实例
2017/09/07 NodeJs
Koa项目搭建过程详细记录
2018/04/12 Javascript
利用Vue实现一个markdown编辑器实例代码
2019/05/19 Javascript
JS桶排序的简单理解与实现方法示例
2019/11/25 Javascript
JS实现排行榜文字向上滚动轮播效果
2019/11/26 Javascript
JavaScript中如何对多维数组(矩阵)去重的实现
2019/12/04 Javascript
5个你不知道的JavaScript字符串处理库(小结)
2020/06/01 Javascript
vue实现分页的三种效果
2020/06/23 Javascript
Python3实现生成随机密码的方法
2014/08/23 Python
python通过文件头判断文件类型
2015/10/30 Python
Python读写Json涉及到中文的处理方法
2016/09/12 Python
python实现将读入的多维list转为一维list的方法
2018/06/28 Python
Python 动态导入对象,importlib.import_module()的使用方法
2019/08/28 Python
Python3读写ini配置文件的示例
2020/11/06 Python
在Pycharm中安装Pandas库方法(简单易懂)
2021/02/20 Python
医院护士的求职信范文
2013/12/26 职场文书
主办会计岗位职责
2014/03/13 职场文书
党员一帮一活动总结
2014/07/08 职场文书
学校党的群众路线教育实践活动整改措施
2014/10/25 职场文书
培训师岗位职责
2015/02/14 职场文书
2015年学校党支部工作总结
2015/04/01 职场文书
物业公司管理制度
2015/08/05 职场文书
windows11怎么查看自己安装的版本号? win11版本号的查看方法
2021/11/21 数码科技