溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Asp.net中Json數(shù)據(jù)的轉(zhuǎn)化,讀取與應(yīng)用

發(fā)布時(shí)間:2020-06-27 15:48:13 來(lái)源:網(wǎng)絡(luò) 閱讀:1353 作者:woshixuye111 欄目:編程語(yǔ)言
 
JSON (JavaScript Object Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式,易于人閱讀和編寫,同時(shí)也易于機(jī)器解析和生成,而且它是基于JavaScript 的。 JSON采用完全獨(dú)立于語(yǔ)言的文本格式,但是也使用了類似于C語(yǔ)言家族的習(xí)慣(包括C, C++, C#, Java, JavaScript 等)。這些特性使JSON成為理想的數(shù)據(jù)交換語(yǔ)言。
 
Json數(shù)據(jù)有嚴(yán)格的格式,必須遵守這個(gè)格式才可以被解析,主要有兩種結(jié)構(gòu)
 
①“名/值”對(duì)的集合在不同的語(yǔ)言中被理解為對(duì)象,結(jié)構(gòu),關(guān)聯(lián)數(shù)組等

②值的有序列表
在大部分語(yǔ)言中,它被理解為數(shù)組。
 
 
JSON表示名稱/值對(duì):{ "firstName": "Brett" }
 
多個(gè)名稱/值對(duì)串在一起:{ "firstName": "Brett", "lastName":"McLaughlin" }
 
 
從語(yǔ)法方面來(lái)看,這與名稱/值對(duì)相比并沒(méi)有很大的優(yōu)勢(shì),但是在這種情況下 JSON更容易使用,而且可讀性更好。當(dāng)需要表示一組值時(shí),JSON 不但能夠提高可讀性,而且可以減少?gòu)?fù)雜性:

{ "employees": [
  { "firstName": "Brett", "lastName":"McLaughlin"
},
  { "firstName": "Jason", "lastName":"Hunter"
},
  { "firstName": "Elliotte", "lastName":"Harold"
}
] }
 

asp.net使用json數(shù)據(jù)流程是什么呢?

1 aspx傳值至cs

2 cs中處理aspx傳來(lái)的值,一番處理之后,處理成json格式的值

3  傳回aspx。aspx中可以通過(guò)拿到的處理后的數(shù)據(jù)。通過(guò)鍵值對(duì)的形式拿到值。

 

例一:

public class JsonHandler : IHttpHandler
{

        public void Proce***equest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
           
string data = "[{name:\"Tom\",age:\"26\"},{name:\"Jim\",age:\"27\"}]";
            context.Response.Write(data);
        }

 
 
        public bool IsReusable
        {
            get
            {
                return false;
            }
        }

}
 
 
②前臺(tái)解析JSON數(shù)據(jù)
 
<head runat="server">
    <title></title>
    <script src="js/jquery-1.3.2.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(function() {
            $.getJSON(
            "JsonHandler.ashx",
             function(data) {
                  $.each(data, function(i) {
                     $("#cat-list").append("<li>name:" + data[i].name
                                                 + "Age:" +data[i].age+ "</li>")
             });
           });
        });  
    </script>
</head>

<body>
    <form id="form1" runat="server">
    <div>
    <ul id="cat-list"></ul>
    </div>
    </form>
</body>
 
 

例二:

aspx

$.getJson("Ajax/Test.aspx",{ID:1}, function(data){

      $.each(data,function(i){

            data[i]...........

     })

} ) 

Test.cs

public partial class GetPoints : System.Web.UI.Page

{

  List<Student> list  = GetList(id);

  JavaScriptSerializer jss = new JavaScriptSerializer();
  Response.Write(jss.Serialize(list));

  Response.End();
}

 

我們看到JavaScriptSerializer 這個(gè)對(duì)象的Serialize這個(gè)方法,這個(gè)方法是做什么用的呢?

Model.Student本身有name等字段,Serialize這個(gè)方法方法處理將數(shù)據(jù)對(duì)象處理成json格式的數(shù)據(jù),其中

[{"num":"111","name":"xy","location":"china"}]........等。通過(guò)data[i].name的形式可以拿到里面的值。
 
我們當(dāng)然可以使用$.ajax方法來(lái)拿到處理后的json數(shù)據(jù)了。
 
$.ajax({
     type:"GET",
     dataType:"json",
     data:{id:json[i].ID},
     async:false,
     url:"Ajax/Test.aspx"
     success:function(data){
                                         
      }
});
 
 
 
向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI