基于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 相关文章推荐
jQuery 1.0.2
Oct 11 Javascript
Jquery实现自定义窗口随意的拖拽
Mar 12 Javascript
JS实现合并两个数组并去除重复项只留一个的方法
Dec 17 Javascript
老生常谈jquery中detach()和remove()的区别
Mar 02 Javascript
ES6新特性二:Iterator(遍历器)和for-of循环详解
Apr 20 Javascript
利用JavaScript对中文(汉字)进行排序实例详解
Jun 18 Javascript
Vue单文件组件基础模板小结
Aug 10 Javascript
深入解析ES6中的promise
Nov 08 Javascript
jQuery移动端跑马灯抽奖特效升级版(抽奖概率固定)实现方法
Jan 18 jQuery
JavaScript函数式编程(Functional Programming)高阶函数(Higher order functions)用法分析
May 22 Javascript
vue实现路由监听和参数监听
Oct 29 Javascript
教你一步步实现一个简易promise
Nov 02 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
提高PHP编程效率的方法
2013/11/07 PHP
PHP编程中的__clone()方法使用详解
2015/11/27 PHP
ThinkPHP模板Volist标签嵌套循环输出多维数组的方法
2016/03/23 PHP
Javascript模块模式分析
2008/05/16 Javascript
JavaScript 异步调用框架 (Part 6 - 实例 &amp; 模式)
2009/08/04 Javascript
JQuery 网站换肤功能实现代码
2009/11/02 Javascript
浅析JS运动
2015/12/28 Javascript
用canvas 实现个图片三角化(LOW POLY)效果
2016/02/18 Javascript
AngularJS自定义插件实现网站用户引导功能示例
2016/11/07 Javascript
浅谈vue中慎用style的scoped属性
2017/11/28 Javascript
基于打包工具Webpack进行项目开发实例
2018/05/29 Javascript
layui下拉列表select实现可输入查找的方法
2019/09/28 Javascript
vue 修改 data 数据问题并实时显示操作
2020/09/07 Javascript
解决ant Design Search无法输入内容的问题
2020/10/29 Javascript
Python导出DBF文件到Excel的方法
2015/07/25 Python
Python中time模块和datetime模块的用法示例
2016/02/28 Python
python扫描proxy并获取可用代理ip的实例
2017/08/07 Python
Python实现简单查找最长子串功能示例
2019/02/26 Python
python定位xpath 节点位置的方法
2019/08/27 Python
详解用python -m http.server搭一个简易的本地局域网
2020/09/24 Python
世界上最大的折扣香水店:FragranceNet.com
2016/10/26 全球购物
Lululemon英国官网:加拿大瑜伽服装品牌
2019/01/14 全球购物
法国购买二手电子产品网站:Asgoodasnew
2020/03/27 全球购物
网络技术支持面试题
2013/04/22 面试题
linux面试题参考答案(6)
2016/06/23 面试题
介绍一下except的用法和作用
2015/01/22 面试题
幼儿园开学寄语
2014/04/03 职场文书
优秀管理者事迹材料
2014/05/22 职场文书
大学生村官考核材料
2014/05/23 职场文书
信电学院毕业生自荐书
2014/05/24 职场文书
企业党员一句话承诺
2014/05/30 职场文书
技术支持岗位职责
2015/02/13 职场文书
国家助学金受助感言
2015/08/01 职场文书
高中英语教学反思范文
2016/03/02 职场文书
css实现文章分割线样式的多种方法总结
2021/04/21 HTML / CSS
golang使用map实现去除重复数组
2022/04/14 Golang