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中 ...
随机推荐
- 小说mvvm
与多样化和复杂的前,设计模式不再是后端专有名词.从最初的面向对象的,框架制定了到现在为止mvc等一下,今天,它主要是关于Model-View-ViewModel(MVVM). 对于mvc大家可能都会相 ...
- A*寻路算法lua实现
前言:并在相当长的时间没有写blog该,我觉得有点"颓废"该,最近认识到各种同行,也刚刚大学毕业,我认为他们是优秀的.认识到与自己的间隙,有点自愧不如.我没有写blog当然,部分原 ...
- windows cmd命令行下创建文件和文件夹
在window下无法通过 右键=>新建 命令来创建以点开头的文件和文件夹 比如 .log ,会提示必须输入文件名. 可以通过命令行来创建 新建文件夹 mkdir .vs 新建文件 type NU ...
- Python补充04 Python简史
原文:Python简史 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Python是我喜欢的语言,简洁,优美,容易使用.前两天, ...
- 对于C11中的正則表達式的使用
Regular Expression Special Characters "."---Any single character(a "wildcard") & ...
- HDU 2112 HDU Today (Dijkstra算法)
HDU Today Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- HTTP简单的解析协议
1.HTTP定义的协议 官方的定义: WWW这是Internet作为传输介质的应用.WWW主变速器单元是在线Web网页.WWW它正在给客户/server计算模型,由Web浏览器Webse ...
- ASP.Net中使用XMLDataSource
在Web开发中,程序和数据库打交道是常有的事情.在平时使用过程中,使用较多的是MS SQLSERVER,因此经常用到SQLDataSource将数据绑定的数据控件上.有时数据量较小,无需要在数据库中创 ...
- Android4.0(Phone)来电过程分析
在开机时.系统会启动PhoneApp类,那是由于在AndroidManifest.xml文件里配置了 <application android:name="PhoneApp" ...
- 【Espruino】NO.06 关键是你的仆人(继续)
http://blog.csdn.net/qwert1213131/article/details/27834551 本文属于个人理解,能力有限,纰漏在所难免.还望指正. [小鱼有点电] 这几天一直在 ...