基于jQuery的ajax功能实现web service的json转化


Posted in Javascript onAugust 29, 2009

不过这篇文章的题目我真不知道该怎么起,如果你因为这个差劲的题目错过这个东西,那真的很可惜。

我在做这个东西之前参考了不少文章:

http://www.roseindia.net/tutorials/json/parse-message-JSON-JS.shtml

http://www.json.org/js.html

http://funkatron.com/site/comments/safely-parsing-json-in-javascript/

http://docs.jquery.com/Ajax/jQuery.getJSON

http://encosia.com/2009/06/29/never-worry-about-asp-net-ajaxs-d-again/

http://encosia.com/2009/04/07/using-complex-types-to-make-calling-services-less-complex/

http://www.isolutionteam.co.uk/json-jquery-ajax-aspnet-and-c-to-get-ajaxed-data-table-rows-passing-multiple-parameters/

第一步需要做的是如何在Server端把一个datatable转坏为自己需要的那种格式:

本来想使用.net的javascriptSerializer来完成的(结合Genirics库的List等),但是后来发现使用NewtonSoft.Json更加灵活,而且扩展性比较好,甚至在网上有找到一些代码能够现成使用。

 

先看看我在Server端如何实现了Data转化:

 

基于jQuery的ajax功能实现web service的json转化

这里不仅能够转换Datatable还有DataSet,以后再扩展JavascriptSerializer的转换功能。需要注意的是转化的最终结果需要是个[]包着的一段字符串.开始我试着使用{}来最终返回json为对象,结果在客户端真的是没有头绪根本就无法转换。最后看到一篇文章介绍,在.net 3.5中你的web Services返回来的结果会自动打包成一个json对象,且名字为d,如:{“d”:***}.所以我只有在服务器端的生成一个array形式的包。

然后我创建了一个数据库表,内容如下:

 

,基于jQuery的ajax功能实现web service的json转化

定义的web方法如下:

 

基于jQuery的ajax功能实现web service的json转化

Serializer方法已经在DNA_JSON中打包好。它是在NewtonSoft.Json的基础转换类基础上扩展的。

 

第二步是客户端的东西:

首先我们需要用到几个js, jQuery.js, json2.js就OK了。

 

基于jQuery的ajax功能实现web service的json转化

上面图所示我们用到了jQuery的ajax和JSON。Parse()转换函数。

还有需要注意的是res.d它是.net 3.5默认为你打包好的json的属性。如果你使用framework2.0就没有这个问题了。

最后是看看如何把这些ojbect组成的array显示在一个table中,代码如下:

<script type="text/javascript"><!-- 
function BuildTable(msg) { 
if ($('#tblResult').length != 0) // remove table if it exists 
{$("#tblResult").remove();} 
var table = '<table class="table.display"><thead> <tr><th>First Name</th> <th>Last Name</th><th>Email</th></thead> <tbody>'; 
for (var i=0;i<=msg.length-1;i++) { 
var row = '<tr>'; 
row += '<td>' + msg[i].UserName+ '</td>'; 
row += '<td>' +msg[i].FirstName+ '</td>'; 
row += '<td>' + msg[i].email + '</td>'; 
row += '</tr>'; 
table += row; 
} 
table += '</tbody></table>'; 
$('#example1').html(table); 
} 
// --></script>

如果还有需要源代码的请留言。接下来我会试着去使用这个方法把一些jQuery的ajax插件介绍给大家,然后把一些datagrid的插件封装成asp.net控件,这样你就不需要使用微软那笨重的datagrid了。
Javascript 相关文章推荐
extjs 为某个事件设置拦截器
Jan 15 Javascript
JavaScript中几种排序算法的简单实现
Jul 29 Javascript
js获取时间精确到秒(年月日)
Mar 16 Javascript
JS基于构造函数实现的菜单滑动显隐效果【测试可用】
Jun 21 Javascript
js实现四舍五入完全保留两位小数的方法
Aug 02 Javascript
函数四种调用模式以及其中的this指向
Jan 16 Javascript
js前端实现图片懒加载(lazyload)的两种方式
Apr 24 Javascript
移动端网页开发调试神器Eruda的介绍与使用技巧
Oct 30 Javascript
在ES5与ES6环境下处理函数默认参数的实现方法
May 13 Javascript
通过实例解析chrome如何在mac环境中安装vue-devtools插件
Jul 10 Javascript
Vue父组件监听子组件生命周期
Sep 03 Javascript
vue项目中企业微信使用js-sdk时config和agentConfig配置方式详解
Dec 15 Vue.js
用户注册常用javascript代码
Aug 29 #Javascript
csdn 博客中实现运行代码功能实现
Aug 29 #Javascript
js 分栏效果实现代码
Aug 29 #Javascript
javascript 简练的几个函数
Aug 29 #Javascript
关于IE、Firefox、Opera页面呈现异同 写脚本很痛苦
Aug 28 #Javascript
jQuery一步一步实现跨浏览器的可编辑表格,支持IE、Firefox、Safari、Chrome、Opera
Aug 28 #Javascript
javascript 遍历验证所有文本框的值
Aug 27 #Javascript
You might like
php 获取完整url地址
2008/12/20 PHP
PHP 处理图片的类实现代码
2009/10/23 PHP
浅析关于PHP位运算的简单权限设计
2013/06/30 PHP
jQuery 源码分析笔记(6) jQuery.data
2011/06/08 Javascript
JS高级笔记
2011/07/13 Javascript
JavaScript内核之基本概念
2011/10/21 Javascript
xml转json的js代码
2012/08/28 Javascript
Jquery创建一个层当鼠标移动到层上面不消失效果
2013/12/12 Javascript
解析jquery中的ajax缓存问题
2013/12/19 Javascript
js换图片效果可进行定时操作
2014/06/09 Javascript
JavaScript获得url所有参数键值表的方法
2015/03/21 Javascript
jQuery获取checkbox选中的值
2016/01/28 Javascript
基于JS实现导航条之调用网页助手小精灵的方法
2016/06/17 Javascript
JavaScript 判断对象中是否有某属性的常用方法
2018/06/14 Javascript
AngularJS中ng-options实现下拉列表的数据绑定方法
2018/08/13 Javascript
jQuery实现鼠标移到某个对象时弹出显示层功能
2018/08/23 jQuery
详解在vue-cli项目下简单使用mockjs模拟数据
2018/10/19 Javascript
Vue 表情包输入组件的实现代码
2019/01/21 Javascript
VUE项目axios请求头更改Content-Type操作
2020/07/24 Javascript
[05:08]顺网杯ISS-DOTA2赛歌 少女偶像Lunar青春演绎
2013/12/05 DOTA
[44:41]Fnatic vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python正则表达式修复网站文章字体不统一的解决方法
2013/02/21 Python
pandas 两列时间相减换算为秒的方法
2018/04/20 Python
如何使用python操作vmware
2019/07/27 Python
pycharm配置git(图文教程)
2019/08/16 Python
python读写Excel表格的实例代码(简单实用)
2019/12/19 Python
西班牙土拨鼠床垫公司,感觉在云端:Marmota
2019/03/18 全球购物
澳大利亚家具商店:Freedom
2020/12/17 全球购物
汽修专业学生自我鉴定
2013/11/16 职场文书
公开承诺书格式
2014/05/21 职场文书
化学专业自荐信
2014/05/28 职场文书
运动会加油稿20字
2014/11/15 职场文书
个人自荐书范文
2015/03/09 职场文书
2015年团支书工作总结
2015/04/03 职场文书
SpringBoot整合MongoDB的实现步骤
2021/06/23 MongoDB
小喇叭开始广播了! 四十多年前珍贵老照片
2022/05/09 无线电