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);
}
{
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;
}
}
}
{
get
{
return false;
}
}
}
②前台解析JSON數據
<head runat="server">
<title></title>
<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
$(function() {
$.getJSON(
"JsonHandler.ashx",
function(data) {
$.each(data, function(i) {
$("#cat-list").append("<li>name:" + data[i].name
+ "Age:" +data[i].age+ "</li>")
});
});
});
</script>
});
});
});
</script>
</head>
<body>
<form runat="server">
<div>
<ul ></ul>
</div>
</form>
</body>
<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,
type:"GET",
dataType:"json",
data:{id:json[i].ID},
async:false,
url:"Ajax/Test.aspx"
success:function(data){
}
});
}
});
最後更新:2017-04-02 22:16:02