閱讀621 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Asp.net中Json數據的轉化,讀取與應用

 
JSON (JavaScript Object Notation) 是一種輕量級的數據交換格式,易於人閱讀和編寫,同時也易於機器解析和生成,而且它是基於JavaScript 的。 JSON采用完全獨立於語言的文本格式,但是也使用了類似於C語言家族的習慣(包括C, C++, C#, Java, JavaScript 等)。這些特性使JSON成為理想的數據交換語言。
 
Json數據有嚴格的格式,必須遵守這個格式才可以被解析,主要有兩種結構
 
①“名/值”對的集合在不同的語言中被理解為對象,結構,關聯數組等

②值的有序列表
在大部分語言中,它被理解為數組。
 
 
JSON表示名稱/值對:{ "firstName": "Brett" }
 
多個名稱/值對串在一起:{ "firstName": "Brett", "lastName":"McLaughlin" }
 
 
從語法方麵來看,這與名稱/值對相比並沒有很大的優勢,但是在這種情況下 JSON更容易使用,而且可讀性更好。當需要表示一組值時,JSON 不但能夠提高可讀性,而且可以減少複雜性:

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

asp.net使用json數據流程是什麼呢?

1 aspx傳值至cs

2 cs中處理aspx傳來的值,一番處理之後,處理成json格式的值

3  傳回aspx。aspx中可以通過拿到的處理後的數據。通過鍵值對的形式拿到值。

 

例一:

public class JsonHandler : IHttpHandler
    {

        public void ProcessRequest(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;
            }
        }
    }
 
 
②前台解析JSON數據
 
<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 runat="server">
    <div>
    <ul ></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 這個對象的Serialize這個方法,這個方法是做什麼用的呢?

Model.Student本身有name等字段,Serialize這個方法方法處理將數據對象處理成json格式的數據,其中

[{"num":"111","name":"xy","location":"china"}]........等。通過data[i].name的形式可以拿到裏麵的值。
 
我們當然可以使用$.ajax方法來拿到處理後的json數據了。
 
$.ajax({
     type:"GET",
     dataType:"json",
     data:{id:json[i].ID},
     async:false,
     url:"Ajax/Test.aspx"
     success:function(data){
                                         
      }
});
 
 

最後更新:2017-04-02 22:16:02

  上一篇:go Struts遍曆標簽s:iterator總結
  下一篇:go hibernate中的lazy的proxy no-proxy