基于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 相关文章推荐
清除网页历史记录,屏蔽后退按钮!
Dec 22 Javascript
js实现图片旋转的三种方法
Apr 10 Javascript
js实现点击添加一个input节点
Dec 05 Javascript
javascript实现动态改变层大小的方法
May 14 Javascript
javascript封装 Cookie 应用接口
Aug 07 Javascript
jQuery绑定事件监听bind和移除事件监听unbind用法实例详解
Jan 19 Javascript
微信小程序 解析网页内容详解及实例
Feb 22 Javascript
Vue中添加手机验证码组件功能操作方法
Dec 07 Javascript
angularjs实现柱状图动态加载的示例
Dec 11 Javascript
layui问题之模拟select点击事件的实例讲解
Aug 15 Javascript
vue刷新页面时去闪烁提升用户体验效果的实现方法
Dec 10 Javascript
利用uni-app生成微信小程序的踩坑记录
Apr 05 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中Session的概念
2006/10/09 PHP
用PHP和ACCESS写聊天室(八)
2006/10/09 PHP
php基础知识:类与对象(5) static
2006/12/13 PHP
PHP递归返回值时出现的问题解决办法
2013/02/19 PHP
深入PHP nl2br()格式化输出的详解
2013/06/05 PHP
php调用C代码的实现方法
2014/03/11 PHP
PHP中Notice错误常见解决方法
2017/04/28 PHP
JavaScript 中的事件教程
2007/04/05 Javascript
JQuery 初体验(建议学习jquery)
2009/04/25 Javascript
javascript 简练的几个函数
2009/08/29 Javascript
JQuery获取各种宽度、高度(format函数)实例
2013/03/04 Javascript
window.print打印指定div实例代码
2013/12/13 Javascript
取消选中单选框radio的三种方式示例介绍
2013/12/23 Javascript
js中文逗号转英文实现
2014/02/11 Javascript
JavaScript 数组- Array的方法总结(推荐)
2016/07/21 Javascript
基于JavaScript Array数组方法(新手必看篇)
2016/08/20 Javascript
jQuery自适应轮播图插件Swiper用法示例
2016/08/24 Javascript
学习掌握JavaScript中this的使用技巧
2016/08/29 Javascript
详解Node.js中的事件机制
2016/09/22 Javascript
angular+webpack2实战例子
2017/05/23 Javascript
cordova入门基础教程及使用中遇到的一些问题总结
2017/11/14 Javascript
详解js动态获取浏览器或页面等容器的宽高
2019/03/13 Javascript
antd-mobile ListView长列表的数据更新遇到的坑
2020/04/08 Javascript
Python查询IP地址归属完整代码
2017/06/21 Python
Python3实现对列表按元组指定列进行排序的方法分析
2018/12/22 Python
Python中remove漏删和索引越界问题的解决
2020/03/18 Python
Python虚拟环境的创建和包下载过程分析
2020/06/19 Python
照片礼物和装饰:MyPhoto
2019/11/02 全球购物
美国鲜花递送:UrbanStems
2021/01/04 全球购物
Vuori官网:运动服装的终级表现
2021/01/27 全球购物
char型变量中能不能存贮一个中文汉字
2015/07/08 面试题
What's the difference between deep copy and shallow copy? (深拷贝与浅拷贝有什么区别)
2015/11/10 面试题
在浏览器端如何得到服务器端响应的XML数据
2012/11/24 面试题
测试工程师岗位职责
2013/11/28 职场文书
财务经理岗位职责范本
2015/04/08 职场文书
2016年优秀教师先进事迹材料
2016/02/26 职场文书