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){
}
});
本文作者:网友 来源:CSDN
CIO之家 www.ciozj.com 微信公众号:imciow