asp.net中Ajax技術使用Json格式傳遞資料

來源:互聯網
上載者:User

通常,我們需要使用Ajax擷取一連串的資訊,如果我們直接使用文字格式設定,需要把資訊拆分開,比如使用split+格式字元的方式去拆分,但是,如果我們查詢的資訊中包含了使用者差

分的格式字元時,得到的資料就會出錯,如果使用XML的話,又顯得太麻煩,所以,很多時候使用Json是一種很不錯的方式;

關於Json:

JavaScript Object Notation (JSON) 是一種輕量級、基於文本、語言無關的資料交換格式。它是從ECMAScript語言標準衍生而來的;

 

JSON是結構化資料序列化的文字格式設定。它衍生自Javascript的對象實字,這定義在ECMAScript語言標準第三版中。JSON能夠描述四種簡單的類型(字串、數字、布爾值及

null)和兩種結構化類型(對象及數組)。字串(string)是零個或多個Unicode字元的序列。對象(object)是無次序的零個或多個名/值(name/value)對的集合,這裡的name

是string類型,value則可以是string、number、boolean、null、object或array類型。數組(array)是零個或多個value的有序序列。"object"和"array"這兩個術語來自

JavaScript規範。JSON的設計目標是使它成為小的、輕便的、文本的,而且是JavaScript的一個子集。

比如,我們需要用Ajax擷取一組使用者資訊,其中包括username,age,sex,address等等;那麼組合成的Json字串為:
{username :'yuliang',age:21,sex:'男',address:'深圳福田'}

調用樣本:

--jquery方式--
function getUserInfo(id) {
    if (isNaN(id)) { return;}
    $.ajax({
        type: "get",
        url: "AjaxCommonClass.aspx?m=getUserInfoById&id=" + id,
        dataType: "json",
        success: function(data) {
            $("#username").html(data.username);
            $("#age").html(data.age);
            $("#sex").html(data.sex);
            $("#address").html(data.address);
        }
    });
}

那麼如何在後台輸出Json格式的字串呢?
最簡單最原始的方式就是組合字元串:
使用System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append()方式.
最後拼裝成:{username :'yuliang',age:21,sex:'男',address:'深圳福田'}

 

第二種使用.net freamwork3.0 內建封裝方法(將對象序列化成JSON格式的字串)

    public static string Serialize(object obj) {
        if (obj == null) return null;
        System.Runtime.Serialization.Json.DataContractJsonSerializer s = new System.Runtime.Serialization.Json.DataContractJsonSerializer(obj.GetType());
        using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
        {
            s.WriteObject(ms, obj);
            return System.Text.Encoding.UTF8.GetString(ms.ToArray());
        }
    }

這樣,我們在傳遞Ajax資料時直接Response.Write(Serialize(obj))方法即可;
用戶端接收到字串後,會自動解析成JS對象!

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.