getJSON與aspx
準備工作
·Customer類
public class Customer
{
public int Unid { get; set; }
public string CustomerName { get; set; }
public string Memo { get; set; }
public string Other { get; set; }
}
(一)ashx
Customer customer = new Customer
{ Unid=1,CustomerName="宋江",Memo="天魁星",Other="黑三郎"};
string strJson = Newtonsoft.Json.JsonConvert.SerializeObject(customer);
context.Response.Write(strJson);
function GetCustomer_Ashx() {
$.getJSON(
"webdata/Json_1.ashx",
function(data) {
var tt = "";
$.each(data, function(k, v) {
tt += k + ":" + v + "<br/>";
})
$("#divmessage").html(tt);
});
·通過getJSON向ashx請求資料。傳回的資料為JSON對象。
(二)ashx檔案,但傳回的是實體集合
{ Unid=1,CustomerName="宋江",Memo="天魁星",Other="黑三郎"};
Customer customer2 = new Customer
{ Unid = 2, CustomerName = "吳用", Memo = "天機星", Other = "智多星" };
List<Customer> _list = new List<Customer>();
_list.Add(customer);
_list.Add(customer2);
string strJson = Newtonsoft.Json.JsonConvert.SerializeObject(_list);
function GetCustomerList() {
$.each(v,function(kk, vv) {
tt += kk + ":" + vv + "<br/>";
});
});
(三)請求aspx檔案
·cs檔案
protected void Page_Load(object sender, EventArgs e)
Customer customer = new Customer
{ Unid = 1, CustomerName = "宋江", Memo = "天魁星", Other = "黑三郎" };
string strJson = Newtonsoft.Json.JsonConvert.SerializeObject(customer);
Response.Write(strJson);
·Aspx檔案
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Json_1.aspx.cs"
Inherits="webdata_Json_1" %>
前台檔案隻保留Page聲明,其它全部删除。
·js檔案
function GetCustomer_Aspx() {
"webdata/Json_1.aspx",
var tt = "";
$.each(data, function(k, v) {
tt += k + ":" + v + "<br/>";
})
$("#divmessage").html(tt);
這個部分與請求ashx檔案時相同。
請求實體集合時,與ashx時相同,這裡不做重複。
(四)請求文本檔案
文本檔案提供json字元串,由$.getJSON得到json對象。
·文本檔案
{Unid:1,CustomerName:"宋江",Memo:"天魁星",Other:"黑三郎"}
文本檔案提供json串,對于json的組成格式,請參見其它文檔。對于這一實體json,會被忽略空行與空格。
function GetCustomer_txt() {
"webdata/Json_1.txt",
解析的方法與其它的相同。
對于多行的如下:
文本:
[
{Unid:1,CustomerName:"宋江",Memo:"天魁星",Other:"黑三郎"},
{Unid:2,CustomerName:"吳用",Memo:"天機星",Other:"智多星"}
]
解析:
function GetCustomer_TxtList() {
$.each(v, function(kk, vv) {
與其它的相同。
(五)帶參數ajax請求
以ashx為例子,按客戶id來請求客戶。
·Ashx檔案
if(context.Request["iUnid"]==null)
return;
context.Response.ContentType = "text/plain";
{ Unid = 1, CustomerName = "宋江", Memo = "天魁星", Other = "黑三郎" };
{ Unid = 2, CustomerName = "吳用", Memo = "天機星", Other = "智多星" };
_list.Add(customer2);
int iCustomerId =Convert.ToInt32(context.Request["iUnid"]);
var cus = from q in _list
where q.Unid == iCustomerId
select q;
string strJson = Newtonsoft.Json.JsonConvert.SerializeObject(cus);
·ajax請求
function GetCustomer_AshxWithPara() {
"webdata/Json_2.ashx",
{ iUnid: 1 },
其中參數也是以k/v對格式發出。請求傳回的可以看到:在服務端以Customer清單集合傳回。
在jquery庫中,getJSON其實是調用的:Query.get(url, data, callback, "json")
這點很重要。
部落格園大道至簡
<a href="http://www.cnblogs.com/jams742003/" target="_blank">http://www.cnblogs.com/jams742003/</a>
轉載請注明:部落格園