基于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 相关文章推荐
Lazy Load 延迟加载图片的jQuery插件中文使用文档
Oct 18 Javascript
jQuery autoComplete插件两种使用方式及动态改变参数值的方法详解
Oct 24 Javascript
js生成随机数方法和实例
Jan 17 Javascript
写给vue新手们的vue渲染页面教程
Sep 01 Javascript
静态页面实现 include 引入公用代码的示例
Sep 25 Javascript
Vue-cli项目获取本地json文件数据的实例
Mar 07 Javascript
JavaScript的Object.defineProperty详解
Jul 09 Javascript
JS/HTML5游戏常用算法之碰撞检测 地图格子算法实例详解
Dec 12 Javascript
element-ui组件table实现自定义筛选功能的示例代码
Mar 15 Javascript
jQuery实现图片下载代码
Jul 18 jQuery
JavaScript Date对象功能与用法学习记录
Apr 28 Javascript
vue通过v-html指令渲染的富文本无法修改样式的解决方案
May 20 Javascript
用户注册常用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
PHP5新特性: 更加面向对象化的PHP
2006/11/18 PHP
用PHP中的 == 运算符进行字符串比较
2006/11/26 PHP
PHP漏洞全解(详细介绍)
2012/11/13 PHP
php将图片保存为不同尺寸图片的图片类实例
2015/03/30 PHP
jquery 使用点滴函数代码
2011/05/20 Javascript
JS模拟面向对象全解(一、类型及传递)
2011/07/13 Javascript
Eclipse去除js(JavaScript)验证错误
2014/02/11 Javascript
一个小例子解释如何来阻止Jquery事件冒泡
2014/07/17 Javascript
js同源策略详解
2015/05/21 Javascript
javascript实现显示和隐藏div方法汇总
2015/08/14 Javascript
Javascript基础之数组的使用
2016/05/13 Javascript
AngularJs  E2E Testing 详解
2016/09/02 Javascript
js微信支付实现代码
2016/12/22 Javascript
Bootstrap学习笔记 轮播(Carousel)插件
2017/03/21 Javascript
Angular2 自定义validators的实现方法
2017/07/05 Javascript
微信小程序页面跳转功能之从列表的item项跳转到下一个页面的方法
2017/11/27 Javascript
vue 利用路由守卫判断是否登录的方法
2018/09/29 Javascript
如何在Vue中使用CleaveJS格式化你的输入内容
2018/12/14 Javascript
js实现图片放大并跟随鼠标移动特效
2019/01/18 Javascript
如何使用pm2快速将项目部署到远程服务器
2019/03/12 Javascript
Flutter 超实用简单菜单弹出框 PopupMenuButton功能
2019/08/06 Javascript
解决layer弹出层自适应页面大小的问题
2019/09/16 Javascript
vue中使用[provide/inject]实现页面reload的方法
2019/09/30 Javascript
谈谈Python进行验证码识别的一些想法
2016/01/25 Python
python字典的常用操作方法小结
2016/05/16 Python
为什么入门大数据选择Python而不是Java?
2018/03/07 Python
pycharm修改界面主题颜色的方法
2019/01/17 Python
python def 定义函数,调用函数方式
2020/06/02 Python
Python3利用scapy局域网实现自动多线程arp扫描功能
2021/01/21 Python
基于html5绘制圆形多角图案
2016/04/21 HTML / CSS
详解Canvas实用库Fabric.js使用手册
2019/01/07 HTML / CSS
西班牙第一的网上药房:PromoFarma.com
2017/04/17 全球购物
普通大学毕业生自荐信
2013/11/04 职场文书
自我鉴定三原则
2014/01/13 职场文书
婚前协议书范本两则
2014/10/16 职场文书
2016党员干部政治学习心得体会
2016/01/23 职场文书