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 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 這個對象的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){
}
});