WebService使用JSON格式传递笔记+JQuery测试
原文WebService使用JSON格式传递笔记+JQuery测试
因为一些因素,必须改写WebService,很传统,但是很多公司还在用.. 因为XML 的关系,不想让他传递数据的时候过度肥大,所以我必须要尽量干净的JSON.. 于是开始我的改写旅程.. 首先,网络上好多好多好多文件,可能因为状况不同,测试过许多也让我搞混很多次.. 最后有找到答案..笔记一下.. 首先我开了三个不同的WebMethod 来测试三种不同的输出.. GetUserInfoString –取得字符串 GetOneUserInfo - 取得一个对象 GetUsers - 取得对象们
01.usingSystem.Collections.Generic;02.usingSystem.Web.Script.Services;03.usingSystem.Web.Services;04.05.namespaceJsonServiceSample06.{07.08.publicclassUser09.{10.publicstringName {get;set; }11.publicintAge {get;set; }12.}13.14.15.[WebService(Namespace ="", Description ="For Donma Test")]16.[System.ComponentModel.ToolboxItem(false)]17.[ScriptService]18.publicclassService1 : WebService19.{20.21.22.[WebMethod]23.[ScriptMethod(ResponseFormat = ResponseFormat.Json)]24.publicstringGetUserInfoString(stringname,intage)25.{26.returnname +","+ age;27.}28.29.30.[WebMethod]31.[ScriptMethod(ResponseFormat = ResponseFormat.Json)]32.publicUser GetOneUserInfo(stringname,intage)33.{34.return(newUser { Name = name, Age = age });35.36.}37.38.39.[WebMethod]40.[ScriptMethod(ResponseFormat = ResponseFormat.Json)]41.publicUser[] GetUsers(stringname,intage)42.{43.List<User> res =newList<User>();44.res.Add(newUser { Name = name +"1", Age = age });45.res.Add(newUser { Name = name +"2", Age = age });46.47.returnres.ToArray();48.}49.50.}51.}再来一个重点,在每一个Method 上方我都会加上www.it165.net
[WebMethod] [ScriptMethod(ResponseFormat = ResponseFormat.Json)]
因为基于有时候我会需要使用GET 方式传递 所以我在Web Config 中加入 在system.web 中加入
<webServices> <protocols> <add name="HttpGet"/> <add name="HttpPost" /> <add name="Documentation" /> </protocols> </webServices> Web.Config 全文:
01.<?xmlversion="1.0"?>02.03.<!--04.For more information on how to configure your <ahref="http://www.it165.net/pro/webasp/"target="_blank"class="keylink">ASP</a>.NET application, please visit06.-->07.08.<configuration>09.<configSections>10.<sectionGroupname="applicationSettings"type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">11.<sectionname="JsonServiceSample.Properties.Settings"type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"requirePermission="false"/>12.</sectionGroup>13.</configSections>14.<system.web>15.<compilationdebug="true"targetFramework="4.0"/>16.<httpHandlers>17.</httpHandlers>18.19.<webServices>20.<protocols>21.<addname="HttpGet"/>22.<addname="HttpPost"/>23.<addname="Documentation"/>24.</protocols>25.</webServices>26.</system.web>27.28.<applicationSettings>29.<JsonServiceSample.Properties.Settings>30.<settingname="JsonServiceSample_JTestService_Service1"serializeAs="String">32.</setting>33.</JsonServiceSample.Properties.Settings>34.</applicationSettings>35.</configuration>这样试跑一下

奇怪为什么不是JSON ,别紧张…我们继续使用 JQuery 来呼叫看看.. JQuery Code :
01.<input type="button"id="ipt1"value="test"/>02.03.<script type="text/javascript">04.05.functionGetInfo() {06.var$res;07.$.ajax({08.type:"POST",09.url:"Service1.asmx/GetOneUserInfo",10.contentType:"application/json; charset=utf-8",11.async:false,12.cache:false,13.dataType:'json',14.data:"{name:'当麻',age:29}",15.success:function(data) {16.if(data.hasOwnProperty("d")) {17.$res = data.d;18.}19.else20.$res = data;21.}22.});23.return$res;24.}25.26.27.$('#ipt1').click(function() {28.varres = GetInfo();29.alert(res.Name);30.});31.32.33.</script>按钮按下去之后 我让他呼叫 GetOneUserInfo 这 method 并且使用POST 看下结果..

恩恩..的确是JSON, 但是多了一个 d 跟 __type 基本上 __type 不要去动他是不影响,但是 d 这东西必须得处理.. 进行改写..实测过上面三种不同的回传值..都 OK~~ 这样对于传统的 WebService Reference 呼叫 WebService 不会有影响.. 也可以透过JQuery 呼叫传递透过JSON…
WebService使用JSON格式传递笔记+JQuery测试的更多相关文章
- C#开发的WebService使用JSON格式传递数据+Ajax测试
[C#] WebService 使用 JSON 格式傳遞筆記 + JQuery 測試 0 2 因為一些因素,必須改寫WebService,很傳統,但是很多公司還在用.. 因為XML 的關係,不想讓他 ...
- SpringMVC中使用Ajax POST请求以json格式传递参数服务端通过request.getParameter("name")无法获取参数值问题分析
SpringMVC中使用Ajax POST请求以json格式传递参数服务端通过request.getParameter("name")无法获取参数值问题分析 一:问题demo展示 ...
- WebService返回json格式数据供苹果或者安卓程序调用
1.新建一个WebService. 2. /// <summary> /// DemoToJson 的摘要说明 /// </summary> [WebService(Names ...
- Java Servlet生成JSON格式数据并用jQuery显示
1.Servlet通过json-lib生成JSON格式的数据 import java.io.IOException;import java.io.PrintWriter;import java.uti ...
- jquery json 格式教程
介绍 我们知道AJAX技术能够使得每一次请求更加迅捷,对于每一次请求返回的不是整个页面,也仅仅是所需要返回的数据.通常AJAX通过返回XML格式的数据,然后再通过客户端复杂的JavaScript脚本解 ...
- Ajax datatype:'JSON'的error问题Status1:200,JSON格式
转自:http://blog.sina.com.cn/s/blog_6e001be701017rux.html <script src="../js/jquery-1.8.0-vsdo ...
- ASP.net jQuery调用webservice返回json数据的一些问题
之前寒假时,试着使用jQuery写了几个异步请求demo, 但是那样是使用的webform普通页面,一般应该是用 webservice 居多. 最近写后台管理时,想用异步来实现一些信息的展示和修改, ...
- jquery ajax调用返回json格式数据处理
Ajax请求默认的都是异步的 如果想同步 async设置为false就可以(默认是true) var html = $.ajax({ url: "some.php", async: ...
- jQuery中使用Ajax获取JSON格式数据示例代码
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式.JSONM文件中包含了关于“名称”和“值”的信息.有时候我们需要读取JSON格式的数据文件,在jQuery中 ...
随机推荐
- C++生产和使用的临时对象
所谓暂时对象就是一种无名对象. 它的出现假设不在程序猿的预期之下(比如不论什么pass by value操作都会引发copy操作,于是形成一个暂时对象),往往照成效率上的负担. 但有时候能够制造 ...
- [Java Web]Struts2加起来(一个)
Struts2环境配置 进口Struts2的需要jar包 在WEB-INF/classes(src)文件夹下创建struts.xml文件 在web.xml文件里加入Struts过滤器信息 经常使用配置 ...
- Dom7.js 源码阅读备份
在Framework7,其特色的HTML框架,可以创建精美的iOS应用; 她有自己的 DOM7- 一个集成了大部分常用DOM操作的高性能库.你不需要学习任何新的东西,因为她的用法和大名鼎鼎的jQue ...
- java通过抛异常来返回提示信息
结论:如果把通过抛异常的方式得到提示信息,可以使用java.lang.Throwable中的构造函数: public Throwable(String message) { fillInStackTr ...
- 网络语音视频技术浅议 Visual Studio 2010(转)
我们在开发实践中常常会涉及到网络语音视频技术.诸如即时通讯.视频会议.远程医疗.远程教育.网络监控等等,这些网络多媒体应用系统都离不开网络语音视频技术.本人才疏学浅,对于网络语音视频技术也仅仅是略知皮 ...
- 根据自己的需要,把别人开发好的东西搬过来,优化and重构,在优化的过程中,甚至也会弄出一套全新的东西(转)
赵海平在今年三月份来到阿里,听毕玄(他现任主管)说去年五六月份就跟赵海平聊上了.有人问:为啥 BAT 三大巨头,你看中了阿里巴巴?在今天现场达一千多人的分享中赵海平给出了回复:“因为百度和腾讯没找我呗 ...
- Laravel nginx 伪静态规则
最近的各种调查PHP相框(CI, Cake, ThinkPHP, Laravel, Yii)情绪Laravel它看起来很漂亮,下一个深入了解.用发展机Apache,Stage在运行nginx,一旦部署 ...
- .NET(C#):浅谈程序集清单资源和RESX资源
原文:.NET(C#):浅谈程序集清单资源和RESX资源 目录 程序集清单资源 RESX资源文件 使用ResourceReader和ResourceSet解析二进制资源文件 使用ResourceM ...
- C++,Python,Go对照学习-01
好吧其实学Go只是为了好玩,只是为了好玩,学习过程中不免会把其他我懂的语言的思维定势和习惯带进来,由此有了这篇对照学习的记录,就当是留下学习的脚印吧. 这里所提及的语言特性在C++指最新的C++11标 ...
- ExecutorService invokeAll 实例(转)
10个班级,每个班级20名学生,在指定的时间内查询每个班级学生的集合. package cn.com.ld.study.thread; import java.util.ArrayList; impo ...