婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 淺談對Jquery+JSON+WebService的使用小結

淺談對Jquery+JSON+WebService的使用小結

熱門標簽:長春呼叫中心外呼系統哪家好 鄭州400電話辦理 聯通 五常地圖標注 萊蕪外呼電銷機器人價格 凱立德導航官網地圖標注 電銷語音自動機器人 智能電話營銷外呼系統 地圖標注和認領 戶外地圖標注軟件手機哪個好用

Jquery作為一款優秀的JS框架,簡單易用的特性就不必說了。在實際的開發過程中,使用JQ的AJAX函數調用WebService

的接口實現AJAX的功能也成了一種比較普遍的技術手段了。WebService接口的實現,通常都是由OOP語言實現的。所以

在WebService的接口函數中,難免可能會遇到除了簡單數據類型的復雜數據類型。復雜的數據的數據類型機有可能是

WebService接口中的參數,也有可能是WebService的返回值。本文所敘述的要點為:

1、對于WebService接口復雜類型的參數,JQ調用的時候傳入的JSON數據應該如何表示。?

2、JQ對WebService調用獲取JSON數據類型。

3、JQ調用的時對Webservice返回的復雜數據類型有什么樣要求。?

環境:JQ版本:1.4.2、VS2008 SP1。

測試一:對于WebService簡單參數類型:

復制代碼 代碼如下:

WebService接口函數代碼如下:

    [WebMethod(Description = "測試方法")]
    public string ProcessPersonalInfo(Person person)
    {
        return person.Name + person.Tel;
    }
    JQ調用代碼如下:

        $.ajax({

        type: "POST",

        url: "WebService1.asmx/GetString",

        dataType: "json",

        contentType: "application/json; charset=utf-8",

        data: "{'name':'zhangsan'}",

        success: function(json) { alert(json.d) },

        error: function(error) {

        alert("調用出錯" + error.responseText);

        }
    });

提示:在$.ajax函數中,data必須要以字符串的形式表示JSON,而不能直接用JSON數據傳進去。可能有些朋友對JSON對象和JSON對象的字符串

不大好區分,其實,字符串類似C#里用“”引起來的東西,而JSON對象是直接寫在{}中的。簡單的測試方法是直接通過alert函數彈出,如果顯示[object:object]

則為JSON對象,否則就是一個字符串。

結果如下圖:

測試二:對于WebService復雜參數類型:

復制代碼 代碼如下:

WebService接口函數代碼如下:

        [WebMethod(Description = "測試方法")]
        public string ProcessPersonalInfo(Person person)
        {
            return person.Name + person.Tel;
        }

        Person實體:

        public class Person
        {
            public string Name { get; set; }

            public int Age { get; set; }

            public string Address { get; set; }

            public string Tel { get; set; }

        }

JQ調用代碼如下:

        $.ajax({

            type: "POST",

            url: "WebService1.asmx/ProcessPersonalInfo",

            dataType: "json",

            contentType: "application/json; charset=utf-8",

            data: "{'person':{'Name':'zhangsan','Age':28,'Address':'beijing',Tel:'01082658866'}}",

            success: function(json) { alert(json.d) },

            error: function(error) {

                alert("調用出錯" + error.responseText);
            }
        });

  結果如下圖:

調用過程與簡單參數類型類似,就是通過在JS中用一個表示Person的person對象的字符串,發往客戶端后,WebService會自動將person對象的字符串

轉換為Person實體對象。

測試三:對于WebService復雜返回類型

復制代碼 代碼如下:

WebService接口函數代碼如下:

        [WebMethod(Description = "測試方法")]
        public ListPerson> GetPersonalList()
        {
            ListPerson> persons = new ListPerson>
                                    {
                                        new Person {Address = "beijing", Age = 25, Name = "zhangshan", Tel = "01082678866"}
                                    };
            return persons;
        }BR> JQ調用代碼如下:

            $.ajax({

            type: "POST",

            url: "WebService1.asmx/GetPersonalList",

            dataType: "json",

            contentType: "application/json; charset=utf-8",

            success: function(json) { $(json.d).each(function() { alert(this.Name + "-" + this.Age + "-" + this.Address + "-" + this.Tel) }) },

            error: function(error) {

                alert("調用出錯" + error.responseText);

            }

        });

  如下圖:

也就是說對于復雜返回類型,處理方式也是簡單類型基本上是一樣的。

曾聽到有一種觀念認為,Jq調用時WebSevice,用JSON作為數據交互格式時,返回數據類型一定是可序列化的。真的是這樣嗎。?

.Net的基本數據類型確實是可序列化的,這一點沒有疑問。那么ListT>數據類型是否可以序列化呢。?看看ListT>的元數據(Metadata)信息

就知道了。。

[DebuggerTypeProxy(typeof (Mscorlib_CollectionDebugViewT>))]

[DebuggerDisplay("Count = {Count}")]

[Serializable]

public class ListT> : IListT>, ICollectionT>, IEnumerableT>, IList, ICollection, IEnumerable

{

/**/

}

如果上面的說法成立,在這種情況下,調用成功也無可厚非。但是問題真是這樣嗎。?下面繼續測試一下:

測試四:對于WebService復雜返回類型

復制代碼 代碼如下:

          [WebMethod(Description = "測試方法")]
        public Person GetPerson()
        {
            Person person = new Person {BR>                               Address = "beijing", Age = 27, BR>                               Name = "zhangshan", Tel = "01082678866"                               BR>                              };
            return person;
        }

JQ調用代碼如下:

        $.ajax({

            type: "POST",

            url: "WebService1.asmx/GetPerson",

            dataType: "json",

            contentType: "application/json; charset=utf-8",

            //data: "{'person':{'Name':'zhangsan','Age':28,'Address':'beijing',Tel:'01082658866'}}",

            success: function(json) { $(json.d).each(function() { alert(this.Name + "-" + this.Age + "-" + this.Address + "-" + this.Tel) }) },

            error: function(error) {

                alert("調用出錯" + error.responseText);

            }

        });

  如下圖:

但是測試四中,GetPerson()方法返回Person數據類型。再看看Person實體的定義,根本就沒有標記問可序列化。

由結果可知:JQ調用WebService,并不一定需要返回復雜類型的數據必須是可序列化的。

下面做一個有趣的測試。大家都知道WebService的返回類型不能為Hashtable類型。因為它實現了因為它實現 IDictionary接口。

測試五:對于WebService復雜返回類型

復制代碼 代碼如下:

         [WebMethod(Description = "測試方法")]
        public Hashtable GetPersonalHashtable()
        {
            Hashtable hashtable = new Hashtable();

            Person person = new Person { Address = "beijing", Age = 25, Name = "zhangshan", Tel = "01082678866" };

            hashtable.Add(1, person);

            return hashtable;
        }

JQ調用代碼如下:

        $.ajax({

            type: "POST",

            url: "WebService1.asmx/GetPersonalHashtable",

            dataType: "json",

            contentType: "application/json; charset=utf-8",

            data: data,

            success: function(json) { $(json.d).each(function() { alert(this["one"].Name) }) },

            error: function(error) {

                alert("調用出錯" + error.responseText);

            }

        });

 

這樣,Jq居然能調用成功。這點是有點讓人意想不到的。

總結:

1、Jq與WebService之間以JSON作為數據交換形式的時候,contentType: "application/json; charset=utf-8"是必須指定的。

要不然WebService不知道以何種數據作為轉換。

2、Jq調用WebService返回復雜數據類型并不一定需要類型為可序列化。

3、WebService返回的JSON數據通過".d"獲取如上面測試中的alert(json.d)

您可能感興趣的文章:
  • jQuery調用WebService返回JSON數據及參數設置注意問題
  • 排除JQuery通過HttpGet調用WebService返回Json時“parserror”錯誤
  • jQuery結合Json提交數據到Webservice,并接收從Webservice返回的Json數據
  • asp.net下使用jquery 的ajax+WebService+json 實現無刷新取后臺值的實現代碼
  • 用Jquery訪問WebService并返回Json的代碼
  • jQuery調用Webservice傳遞json數組的方法

標簽:衢州 湖州 福州 紅河 岳陽 西寧 西藏 宣城

巨人網絡通訊聲明:本文標題《淺談對Jquery+JSON+WebService的使用小結》,本文關鍵詞  淺談,對,Jquery+JSON+WebService,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《淺談對Jquery+JSON+WebService的使用小結》相關的同類信息!
  • 本頁收集關于淺談對Jquery+JSON+WebService的使用小結的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    777色狠狠一区二区三区| 久久99蜜桃精品| 国产精品久久久久久久午夜片| 午夜激情一区二区| 在线观看亚洲a| 亚洲另类在线视频| 色美美综合视频| 亚洲视频精选在线| 日本高清不卡一区| 国产精品久久久久久亚洲伦| 亚洲免费观看高清| 欧美精品一区二区蜜臀亚洲| 美日韩黄色大片| 精品国产91乱码一区二区三区 | 亚洲在线视频网站| 欧美日本一区二区| 久久不见久久见免费视频1| 国产亚洲欧美日韩在线一区| 成人午夜免费电影| 日韩毛片视频在线看| 99精品视频中文字幕| 亚洲第一激情av| 日韩欧美一级在线播放| 丁香网亚洲国际| 一区二区在线看| 在线综合视频播放| 懂色av中文一区二区三区| 亚洲成人tv网| 91精品久久久久久蜜臀| 91蜜桃在线免费视频| 激情综合网激情| 日韩在线播放一区二区| 日韩码欧中文字| 国产精品九色蝌蚪自拍| 日韩精品专区在线| 欧美日韩国产成人在线91| 99国产欧美久久久精品| 波多野结衣91| 色女孩综合影院| 色狠狠一区二区三区香蕉| av在线播放一区二区三区| 风间由美性色一区二区三区| 国产成人在线免费| 福利一区二区在线| 成人app软件下载大全免费| 成人免费毛片高清视频| jizzjizzjizz欧美| 在线精品视频免费播放| 欧美日韩一区 二区 三区 久久精品| 91婷婷韩国欧美一区二区| 欧美专区日韩专区| www精品美女久久久tv| 国产精品久久久久久妇女6080| 国产区在线观看成人精品| 亚洲免费观看高清在线观看| 一二三四区精品视频| 国内精品不卡在线| 99精品国产99久久久久久白柏| 欧美色倩网站大全免费| 欧美精品一区二| 婷婷六月综合亚洲| 不卡一二三区首页| 欧美电影一区二区三区| 亚洲女爱视频在线| 久久国产精品99久久久久久老狼| 久久99精品视频| 97精品国产97久久久久久久久久久久 | 国产成人高清视频| 在线观看免费视频综合| 欧美va亚洲va在线观看蝴蝶网| 成人午夜电影久久影院| 日本午夜精品视频在线观看| 不卡一区二区中文字幕| 久久网站热最新地址| 日韩av一二三| 日韩欧美区一区二| 日本不卡的三区四区五区| 欧美午夜一区二区| 一区二区三区 在线观看视频| 国产激情91久久精品导航| 国产校园另类小说区| 国产一区二区在线电影| 日韩一区二区三区电影| 日韩制服丝袜先锋影音| 欧美精品一区二区三区四区 | 青青青伊人色综合久久| 欧美久久久久久久久| 日韩精品一级中文字幕精品视频免费观看 | 欧美精品国产精品| 激情文学综合丁香| 亚洲日本一区二区| 精品国产一二三| 一本色道综合亚洲| 国产美女久久久久| 亚洲国产日韩一级| 中文字幕的久久| 欧美精品一区二区久久婷婷| 99九九99九九九视频精品| 日韩电影一区二区三区| 国产精品色眯眯| 日韩免费福利电影在线观看| 不卡高清视频专区| 国产一区欧美二区| 久久草av在线| 丝袜国产日韩另类美女| 一区二区三区日韩欧美精品| 国产欧美久久久精品影院| 欧美日韩国产精品自在自线| 色哟哟一区二区在线观看| 国产精品香蕉一区二区三区| 日韩专区中文字幕一区二区| 亚洲国产精品一区二区尤物区| 国产片一区二区| 国产欧美日韩在线看| 国产欧美日韩三区| 日韩一区在线免费观看| 亚洲欧美乱综合| 亚洲国产精品欧美一二99| 一区二区三区精密机械公司| 亚洲成人综合在线| 美女脱光内衣内裤视频久久网站| 免费人成网站在线观看欧美高清| 日韩电影一二三区| 成人小视频在线观看| 欧美图片一区二区三区| 日韩一区二区麻豆国产| 国产女主播一区| 亚洲综合图片区| 国产精品一区二区久久不卡| youjizz国产精品| 日韩精品中文字幕在线一区| 国产精品久久久久影院色老大| 亚洲亚洲人成综合网络| 国产成人欧美日韩在线电影| 色88888久久久久久影院野外| 欧美一区二区三区不卡| 亚洲私人黄色宅男| 亚洲二区在线观看| 一区二区三区蜜桃| 亚洲精品一二三| 毛片av一区二区三区| 国内外成人在线| 欧美色窝79yyyycom| 国产欧美日韩精品在线| 免费观看久久久4p| 欧美日韩中文字幕一区| 久久久蜜臀国产一区二区| 日韩精品免费视频人成| 欧美日韩精品三区| 日韩国产一区二| 日韩一区和二区| 久久99精品国产.久久久久 | 日韩欧美色综合| 久久精品99国产国产精| 久久综合色8888| 91在线观看一区二区| 一区二区在线观看免费视频播放| 91在线视频播放| 亚洲国产视频在线| 久久久噜噜噜久久人人看 | 国产剧情一区在线| 欧美精品一区二区三区在线| 国产电影一区在线| 亚洲欧洲成人自拍| 色成人在线视频| 久久成人av少妇免费| 亚洲欧美另类小说| 欧美一区二区三区小说| 91在线视频免费观看| 蜜臀va亚洲va欧美va天堂| ...xxx性欧美| 国产夜色精品一区二区av| 色婷婷国产精品久久包臀| 日韩**一区毛片| 一区二区三区小说| 亚洲丝袜制服诱惑| 久久综合久色欧美综合狠狠| 欧美私模裸体表演在线观看| 国产精品一区二区免费不卡 | 国产毛片精品国产一区二区三区| 国产精品成人一区二区三区夜夜夜| 91精品国产综合久久久久久| 色天天综合色天天久久| 99视频超级精品| 成人性色生活片| 国产激情一区二区三区四区 | 精品久久久久一区| 欧美精品色综合| 欧美午夜精品理论片a级按摩| 国产精一区二区三区| 欧美激情一区二区三区全黄| 欧美日韩久久久| 91精品国产综合久久福利| 91精品国产综合久久精品| 日韩三级免费观看| 8x8x8国产精品| 久久久精品国产免大香伊| 国产午夜精品一区二区三区四区| 久久久久久久久久久99999| 国产女人aaa级久久久级|