②值的有序列表 在大部分語(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){
}
});