基于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 相关文章推荐
Extjs4中Form的使用之本地hiddenfield
Nov 26 Javascript
用js通过url传参把数据从一个页面传到另一个页面
Sep 01 Javascript
jQuery简单实现中间浮窗效果
Sep 04 Javascript
使用Ajax生成的Excel文件并下载的实例
Nov 21 Javascript
JS DOMReady事件的六种实现方法总结
Nov 23 Javascript
Bootstrap风格的zTree右键菜单
Feb 17 Javascript
require.js与bootstrap结合实现简单的页面登录和页面跳转功能
May 12 Javascript
jQuery+SpringMVC中的复选框选择与传值实例
Jan 08 jQuery
浅谈webpack 构建性能优化策略小结
Jun 13 Javascript
Vue.js中使用iView日期选择器并设置开始时间结束时间校验功能
Aug 12 Javascript
原生JavaScript实现滑动拖动验证的示例代码
Dec 06 Javascript
避坑之 JavaScript 中的toFixed()和正则表达式
Apr 19 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在程序中将网页生成word文档并提供下载的代码
2012/10/09 PHP
PHP提示Notice: Undefined variable的解决办法
2012/11/24 PHP
php数组添加与删除单元的常用函数实例分析
2015/02/16 PHP
php使用unset()删除数组中某个单元(键)的方法
2015/02/17 PHP
php实现姓名根据首字母排序的类与方法(实例代码)
2018/05/16 PHP
jquery中的sortable排序之后的保存状态的解决方法
2010/01/28 Javascript
原创javascript小游戏实现代码
2010/08/19 Javascript
jquery固定底网站底部菜单效果
2013/08/13 Javascript
javascript常用方法总结
2015/05/14 Javascript
AngularJS下对数组的对比分析
2016/08/24 Javascript
微信小程序 animation API详解及实例代码
2016/10/08 Javascript
基于JavaScript实现弹幕特效
2020/08/27 Javascript
ES6 javascript的异步操作实例详解
2017/10/30 Javascript
React diff算法的实现示例
2018/04/20 Javascript
Layui 动态禁止select下拉的例子
2019/09/03 Javascript
vue路由教程之静态路由
2019/09/03 Javascript
vue2.0+SVG实现音乐播放圆形进度条组件
2019/09/21 Javascript
Javascript执行流程细节原理解析
2020/05/14 Javascript
vue使用vant中的checkbox实现全选功能
2020/11/17 Vue.js
有关wxpython pyqt内存占用问题分析
2014/06/09 Python
Python 爬虫学习笔记之单线程爬虫
2016/09/21 Python
Python数据结构与算法之字典树实现方法示例
2017/12/13 Python
Python退火算法在高次方程的应用
2018/07/26 Python
python使用selenium登录QQ邮箱(附带滑动解锁)
2019/01/23 Python
python超时重新请求解决方案
2019/10/21 Python
Python3 利用face_recognition实现人脸识别的方法
2020/03/13 Python
html5使用canvas绘制太阳系效果
2014/12/15 HTML / CSS
HTML5 Canvas 绘图——使用 Canvas 绘制图形图文教程 使用html5 canvas 绘制精美的图
2015/08/31 HTML / CSS
Java中采用什么结构来捕获、处理异常?各子句的顺序、功能如何
2013/10/07 面试题
总经理岗位职责
2013/11/09 职场文书
适用于所有创业者的创业计划书
2014/02/05 职场文书
文秘个人求职信范文
2014/04/22 职场文书
镇政府副镇长群众路线专题民主生活会对照检查材料
2014/09/19 职场文书
2015年教师节活动总结
2015/03/20 职场文书
2015年话务员工作总结
2015/04/29 职场文书
Go语言实现Snowflake雪花算法
2021/06/08 Golang