浅析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 forEach通用循环遍历方法
Oct 11 Javascript
js数组的基本操作(很全自己整理的)
Oct 16 Javascript
一张Web前端的思维导图分享
Jul 03 Javascript
关于session和cookie的简单理解
Jun 08 Javascript
前端设计师们最常用的JS代码汇总
Sep 25 Javascript
基于Vue实现拖拽功能
Jul 29 Javascript
JS/HTML5游戏常用算法之碰撞检测 地图格子算法实例详解
Dec 12 Javascript
详解Vue源码中一些util函数
Apr 24 Javascript
微信小程序和H5页面间相互跳转代码实例
Sep 19 Javascript
在Layui中操作数据表格,给指定单元格添加事件示例
Oct 26 Javascript
Vue路由对象属性 .meta $route.matched详解
Nov 04 Javascript
理解Proxy及使用Proxy实现vue数据双向绑定操作
Jul 18 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源码批量抓取远程网页图片并保存到本地的实现方法
2015/12/01 PHP
[原创]CI(CodeIgniter)简单统计访问人数实现方法
2016/01/19 PHP
PHP简单实现无限级分类的方法
2016/05/13 PHP
linux下php上传文件注意事项
2016/06/11 PHP
laravel dingo API返回自定义错误信息的实例
2019/09/29 PHP
jQuery验证Checkbox是否选中的代码 推荐
2011/09/04 Javascript
深入理解JavaScript系列(12) 变量对象(Variable Object)
2012/01/16 Javascript
jQuery操作表格(table)的常用方法、技巧汇总
2014/04/12 Javascript
JavaScript类型检测之typeof 和 instanceof 的缺陷与优化
2016/01/13 Javascript
JavaScript代码性能优化总结(推荐)
2016/05/16 Javascript
AngularJS 避繁就简的路由
2016/07/01 Javascript
JS中使用FormData上传文件、图片的方法
2016/08/07 Javascript
浅谈js中StringBuffer类的实现方法及使用
2016/09/02 Javascript
JavaScript面试题大全(推荐)
2016/09/22 Javascript
jQuery模拟完美实现经典FLASH导航动画效果【附demo源码下载】
2016/11/09 Javascript
vue-resource 拦截器使用详解
2017/02/21 Javascript
JS 60秒后重新发送验证码的实例讲解
2017/07/26 Javascript
Vue filter介绍及详细使用
2018/04/04 Javascript
使用Angular CLI快速创建Angular项目的一些基本概念和写法小结
2018/04/22 Javascript
NodeJS 实现多语言的示例代码
2018/09/11 NodeJs
Vuex的初探与实战小结
2018/11/26 Javascript
javascript实现鼠标点击生成文字特效
2019/12/24 Javascript
[02:33]DOTA2英雄基础教程 司夜刺客
2013/12/04 DOTA
windows下安装python的C扩展编译环境(解决Unable to find vcvarsall.bat)
2018/02/21 Python
Django中的forms组件实例详解
2018/11/08 Python
python-pyinstaller、打包后获取路径的实例
2019/06/10 Python
基于python进行抽样分布描述及实践详解
2019/09/02 Python
pyhton中__pycache__文件夹的产生与作用详解
2019/11/24 Python
numpy矩阵数值太多不能全部显示的解决
2020/05/14 Python
Python求区间正整数内所有素数之和的方法实例
2020/10/13 Python
纽约家具、家居装饰和地毯店:ABC Carpet & Home
2017/06/21 全球购物
西班牙最好的在线购买葡萄酒的商店:Vinoseleccion
2019/10/30 全球购物
英文演讲稿
2014/05/15 职场文书
小学英语课教学反思
2016/02/15 职场文书
Springboot如何同时装配两个相同类型数据库
2021/11/17 Java/Android
攻略丨滑雪究竟该选哪款对讲机?
2022/02/18 无线电