浅析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:将其它类型值转换成布尔类型值的解决方法详解
May 07 Javascript
jQuery实现table隔行换色和鼠标经过变色的两种方法
Jun 15 Javascript
JS倒计时代码汇总
Nov 25 Javascript
JavaScript获得指定对象大小的方法
Jul 01 Javascript
javascript实现根据iphone屏幕方向调用不同样式表的方法
Jul 13 Javascript
jQuery实现信息提示框(带有圆角框与动画)效果
Aug 07 Javascript
BootStrap智能表单实战系列(七)验证的支持
Jun 13 Javascript
如何解决IONIC页面底部被遮住无法向上滚动问题
Sep 06 Javascript
微信小程序点击控件修改样式实例详解
Jul 07 Javascript
Node.js使用MySQL连接池的方法实例
Feb 11 Javascript
Vue底层实现原理总结
Feb 17 Javascript
详解Vue的options
May 15 Vue.js
网页前端优化之滚动延时加载图片示例
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集成FCK的函数代码
2008/09/27 PHP
让PHP支持断点续传的源码
2010/05/16 PHP
thinkPHP简单遍历数组方法分析
2016/05/16 PHP
php中namespace及use用法分析
2016/12/06 PHP
php新建文件的方法实例
2019/09/26 PHP
Laravel框架下的Contracts契约详解
2020/03/17 PHP
javascript 点击整页变灰的效果(可做退出效果)。
2008/01/09 Javascript
js 判断文件类型并控制表单提交示例代码
2013/11/14 Javascript
Js使用WScript.Shell对象执行.bat文件和cmd命令
2014/12/18 Javascript
Jquery实现textarea根据文本内容自适应高度
2015/04/03 Javascript
jQuery+HTML5美女瀑布流布局实现方法
2015/09/21 Javascript
浅谈JavaScript中的分支结构
2016/07/01 Javascript
JavaScript中的工厂函数(推荐)
2017/03/08 Javascript
JS数组搜索之折半搜索实现方法分析
2017/03/27 Javascript
angularJS利用ng-repeat遍历二维数组的实例代码
2017/06/03 Javascript
nodejs超出最大的调用栈错误问题
2017/12/27 NodeJs
Vue项目从webpack3.x升级webpack4不完全指南
2019/04/28 Javascript
Angular 多模块项目构建过程
2020/02/13 Javascript
vue+canvas实现拼图小游戏
2020/09/18 Javascript
[01:03]PWL开团时刻DAY6——别打我
2020/11/05 DOTA
python解析xml文件实例分享
2013/12/04 Python
用python + hadoop streaming 分布式编程(一) -- 原理介绍,样例程序与本地调试
2014/07/14 Python
利用标准库fractions模块让Python支持分数类型的方法详解
2017/08/11 Python
python实现扫描日志关键字的示例
2018/04/28 Python
python selenium自动上传有赞单号的操作方法
2018/07/05 Python
Django框架模板的使用方法示例
2019/05/25 Python
Python实现K折交叉验证法的方法步骤
2019/07/11 Python
python从ftp获取文件并下载到本地
2020/12/05 Python
详解HTML5将footer置于页面最底部的方法(CSS+JS)
2018/10/11 HTML / CSS
求网格中的黑点分布
2013/11/06 面试题
致跳高运动员广播稿
2014/01/13 职场文书
快餐公司创业计划书
2014/04/29 职场文书
2017公司年会主持人开幕词
2016/03/04 职场文书
pytorch 一行代码查看网络参数总量的实现
2021/05/12 Python
MySQL数据库超时设置配置的方法实例
2021/10/15 MySQL
CSS list-style-type属性使用方法
2023/05/21 HTML / CSS