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中 ...
随机推荐
- asp.net web api KnownTypeAttribute
项目里用到了继承,在序列化的时候遇到了问题. 源代码 public class Segment { public SegmentType Type { get; set; } public strin ...
- 使用更清晰DebugLog开发和调试工具
在开发和应用的开发和调试过程中难免会发现故障的过程中.我相信很多做iOS开发程序员Xcode的debug调试功能大加关注. 但在这样做Android开发过程中,却不那么方便,虽然IDE也提供了debu ...
- 实现android里面WebView显示内容
在日常学习.我们会看到,当手机应该检查注册协议.单击协议时,以查看内部协议的全部内容! 以下给大家看看实现的过程: 首先贴show_xy.XML代码: <WebView android:layo ...
- SVN目录对号图标(更新、冲突)不显示
长谈想知道,大约SVN这些冲突.变化.加入.不显示问题etc目录下的复选图标,退房的在线信息,多数说的更改icon的settings,后来,一点点仔细阅读SVN配有英文说明文档,我相信,改变是有点问题 ...
- Model绑定
Model绑定 在前面的几篇文章中我们都是采用在URI中元数据类型进行传参,实际上ASP.NET Web API也提供了对URI进行复杂参数的绑定方式--Model绑定.这里的Model可以简单的理解 ...
- NSIS:禁止选择安装路径和编辑安装目录
原文 NSIS:禁止选择安装路径和编辑安装目录 如果你想在安装包中禁止用户选择安装路径和编辑安装目录,有两种方式. 第一种:注释或删除安装目录选择页面 1 ;!insertmacro MUI_PA ...
- Codeforces Round #257 (Div. 2/A)/Codeforces450A_Jzzhu and Children
解题报告 没什么好说的,大于m的往后面放,,,re了一次,,, #include <iostream> #include <cstdio> #include <cstri ...
- 第四章:Django 的模板系统(转)
在之前的章节中,你可能觉得例子中视图返回文本有点不妥.即是, HTML 是直接写在 Python 代码中的. 这种做法会导致这些问题: 要做任何设计上的更改就必须改写 Python 代 ...
- 高速建成Android开发环境ADT-Bundle和Hello World
----下载JDK(Java Dev Kit) 官方下载:http://www.oracle.com/technetwork/java/javase/downloads/index.html 兴许步骤 ...
- 转让lua性能executeGlobalFunction
没有其他的,搞搞cocos2dx的lua文字,话lua这件事情在几年前学过一段时间.还曾对自己c++介面,我已经做了一些小东西.只是时间的流逝,模糊记忆. 拿起点功夫和成本.下面是我的一些经验. co ...