浅析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 相关文章推荐
jQuery学习7 操作JavaScript对象和集合的函数
Feb 07 Javascript
再谈querySelector和querySelectorAll的区别与联系
Apr 20 Javascript
IE6-IE9不支持table.innerHTML的解决方法分享
Sep 14 Javascript
JS弹出可拖拽可关闭的div层完整实例
Feb 13 Javascript
JavaScript实现的字符串replaceAll函数代码分享
Apr 02 Javascript
jQuery on()方法示例及jquery on()方法的优点
Aug 27 Javascript
JavaScript兼容浏览器FF/IE技巧
Aug 14 Javascript
jQuery实现打开网页自动弹出遮罩层或点击弹出遮罩层功能示例
Oct 19 jQuery
elementUI table表格动态合并的示例代码
May 15 Javascript
AngularJS实现的鼠标拖动画矩形框示例【可兼容IE8】
May 17 Javascript
vue data有值,但是页面{{}} 取不到值的解决
Nov 09 Javascript
详解前端任务构建利器Gulp.js使用指南
Apr 30 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
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
json 入门基础教程 推荐
2009/10/31 Javascript
在javascript中对于DOM的加强
2013/04/11 Javascript
js使用for循环与innerHTML获取选中tr下td值
2014/09/26 Javascript
JQuery实现带排序功能的权限选择实例
2015/05/18 Javascript
js随机生成26个大小写字母
2016/02/12 Javascript
javascript中不易分清的slice,splice和split三个函数
2016/03/29 Javascript
Bootstrap教程JS插件弹出框学习笔记分享
2016/05/17 Javascript
Jquery给当前页或者跳转后页面的导航栏添加选中后样式的实例
2016/12/08 Javascript
微信小程序手势操作之单触摸点与多触摸点
2017/03/10 Javascript
vue时间格式化实例代码
2017/06/13 Javascript
React Native预设占位placeholder的使用
2017/09/28 Javascript
mint-ui的search组件在键盘显示搜索按钮的实现方法
2017/10/27 Javascript
jQuery实现带3D切割效果的轮播图功能示例【附源码下载】
2019/04/04 jQuery
layer页面跳转,获取html子节点元素的值方法
2019/09/27 Javascript
微信小程序全选多选效果实现代码解析
2020/01/21 Javascript
element-ui 弹窗组件封装的步骤
2021/01/22 Javascript
python访问sqlserver示例
2014/02/10 Python
分享Python开发中要注意的十个小贴士
2016/08/30 Python
tensorflow 用矩阵运算替换for循环 用tf.tile而不写for的方法
2018/07/27 Python
在python中将字符串转为json对象并取值的方法
2018/12/31 Python
详解将Python程序(.py)转换为Windows可执行文件(.exe)
2019/07/19 Python
利用Python的sympy包求解一元三次方程示例
2019/11/22 Python
用什么库写 Python 命令行程序(示例代码详解)
2020/02/20 Python
tensorflow模型转ncnn的操作方式
2020/05/25 Python
python tkiner实现 一个小小的图片翻页功能的示例代码
2020/06/24 Python
基于Python实现简单学生管理系统
2020/07/24 Python
纯CSS3实现Material Design效果
2017/03/09 HTML / CSS
Eastbay官网:美国最大的运动鞋网络零售商
2016/07/27 全球购物
Bose法国官网:购买耳机、扬声器、家庭影院、专业音响
2017/12/21 全球购物
小学班主任寄语大全
2014/04/04 职场文书
中学学校门卫岗位职责
2014/08/15 职场文书
党的群众路线批评与自我批评发言稿
2014/10/16 职场文书
工厂无线对讲系统解决方案
2022/02/18 无线电
openstack云计算keystone组件工作介绍
2022/04/20 Servers
Go获取两个时区的时间差
2022/04/20 Golang