基于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 相关文章推荐
通过JAVASCRIPT读取ASP设定的COOKIE
Feb 15 Javascript
javascript中利用数组实现的循环队列代码
Jan 24 Javascript
将Datatable转化成json发送前台实现思路
Sep 06 Javascript
JavaScript中模拟实现jsonp
Jun 19 Javascript
jQuery插件开发精品教程(让你的jQuery更上一个台阶)
Nov 07 Javascript
Java遍历集合方法分析(实现原理、算法性能、适用场合)
Apr 25 Javascript
bootstrap-wysiwyg结合ajax实现图片上传实时刷新功能
May 27 Javascript
js判断是否为空和typeof的用法(详解)
Oct 07 Javascript
Bootstrap禁用响应式布局的实现方法
Mar 09 Javascript
vue-router实现webApp切换页面动画效果代码
May 25 Javascript
js前端面试之同步与异步问题详解
Apr 03 Javascript
js实现弹窗效果
Aug 09 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入门
2006/10/09 PHP
Discuz Uchome ajaxpost小技巧
2011/01/04 PHP
php生成图片缩略图的方法
2015/04/07 PHP
phpcms中的评论样式修改方法
2016/10/21 PHP
PHP+Mysql无刷新问答评论系统(源码)
2016/12/20 PHP
php框架CI(codeigniter)自动加载与自主创建对象操作实例分析
2020/06/06 PHP
[原创]后缀就扩展名为js的文件是什么文件
2007/12/06 Javascript
利用Ext Js生成动态树实例代码
2008/09/08 Javascript
JavaScript 事件系统
2010/07/22 Javascript
JS使用getComputedStyle()方法获取CSS属性值
2014/04/23 Javascript
使用JavaScript判断图片是否加载完成的三种实现方式
2014/05/04 Javascript
浅谈document.write()输出样式
2015/05/07 Javascript
详解Javascript中的Object对象
2016/02/28 Javascript
javascript实现仿百度图片的瀑布流加载效果
2016/04/20 Javascript
JS 验证密码 不能为空,必须含有数字、字母、特殊字符,长度在8-12位
2017/06/21 Javascript
three.js实现3D影院的原理的代码分析
2017/12/18 Javascript
mpvue将vue项目转换为小程序
2018/09/30 Javascript
JS实现的碰撞检测与周期移动完整示例
2019/09/02 Javascript
用Node写一条配置环境的指令
2019/11/14 Javascript
es6函数之严格模式用法实例分析
2020/03/17 Javascript
JS画布动态实现黑客帝国背景效果
2020/11/08 Javascript
在vue项目中封装echarts的步骤
2020/12/25 Vue.js
Python中使用装饰器时需要注意的一些问题
2015/05/11 Python
Python使用pyh生成HTML文档的方法示例
2018/03/10 Python
python使用MQTT给硬件传输图片的实现方法
2019/05/05 Python
关于Tensorflow分布式并行策略
2020/02/03 Python
python logging.basicConfig不生效的原因及解决
2020/02/20 Python
TensorFlow Autodiff自动微分详解
2020/07/06 Python
最新pycharm安装教程
2020/11/18 Python
python Xpath语法的使用
2020/11/26 Python
出国考察邀请函
2014/01/21 职场文书
爷爷追悼会答谢词
2014/01/24 职场文书
工厂仓管员岗位职责范本
2014/07/17 职场文书
解除劳动合同协议书范本2014
2014/09/25 职场文书
2015年学校远程教育工作总结
2015/07/20 职场文书
springboot应用服务启动事件的监听实现
2022/04/06 Java/Android