发表于2年前(2012-06-26 11:28) 阅读(2597) | 评论(2) 4人收藏此文章, 我要收藏html
赞0jquery
ASP.NET JSON Newtonsoft.Json.dllweb
关于json,有一个官网:http://www.json.org 上面介绍了每种语言生成json格式的类库,咱们只要把他们下载解压以后调用他们其中的组件便可,在.net中我用的是Newtonsoft.Json.dll这个组件,这个组件有好几种版本,有1.0,3.5等等。关于他的用法能够到官网去具体了解一下,这样我这里主要是介绍咱们如何用他们,首先要在后台处理页面生成并返回json数据格式,数据处理页面这里能够用aspx或者ashx页面,若是用aspx页面来处理的话,首页把aspx的源视图中除了第一行以外,其他行都要删除,由于若是不删除的话,那么他们都将被返回给前台调用者一定形成错误.下面我介绍如何用ashx页面来生成json并返回。下面建一个Handler.ashx页面,下面是它里面的代码在引用Newtonsoft.Json.dll,要先将Newtonsoft.Json.dll放在Bin文件中,而后再页面添加对他的引用using Newtonsoft.Json;ajax
IList<RoomCate> list = RoomCateManager.GetAllRoomCateInfo();
string Content = JavaScriptConvert.SerializeObject(list);//将数据转成json格式
Response.Write(Content ); //输出jsonjson
从上面能够看出返回的是一个数组,里面包含许多的json对象,格式是[{"id":"1"},{"id":"2"}]数组
RoomCate rc=RoomCateManager.GetRoomCateInfo(id);
string Content = JavaScriptConvert.SerializeObject(rc);//将数据转成json格式
Response.Write(Content ); //输出jsonapp
上面输入的json格式为{"id":"1"}spa
那么咱们前台如何调用并解析它呢,这里咱们要用jquery里面的ajax方法,固然用的前提是用引用jquery.js文件。这里我推荐用getJSON方法由于他直接就返回json的数据格式.net
$.getJSON("Handler/Handler.ashx", function (json) {
$.each(json, function (index, array) { //解析json数组用的方法
var roomID= array['RoomID'];//RoomID用类的属性
$("#NewsTop").append(roomID);//把它加载到咱们要显示他们的html标签中
});
});orm
若是返回是json对象格式为{"id":"1"}那么咱们将如何解析它呢,使用方法同样只是解析方法不同
$.getJSON("Handler.ashx", function (json) {//直接用json.属性便可
$("#logo").append("<img src='../SystemFiles/" + json.PictureName + "' width='234' height='172' />");
$("#intro").html(json.Contents.substr(0, 420) + "...");
});
若是要交给aspx页面处理的话,不只用将源代码中只保留第一行,其他行删除以外,还有加随机数
$.getJSON("Handler.aspx", {sjd: Date().toLocaleString() }, function (json) {
.....................//解析方法同上,其中data参数为sjd: Date().toLocaleString() ,这句就是随机数确保每次解析都不同 });