Jquery与JSON

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文件,但返回的是实体集合

 
Customer customer = new Customer
    { 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);
context.Response.Write(strJson);

 

 

 

 
function GetCustomerList() {
    $.getJSON(
    "webdata/Json_1.ashx",
    function(data) {
        var tt = "";
        $.each(data, function(k, v) {
            $.each(v,function(kk, vv) {
                tt += kk + ":" + vv + "<br/>";
            });
        });
        $("#divmessage").html(tt);
    });
}

 

具体可以参看:http://www.cnblogs.com/jams742003/archive/2009/12/25/1632276.html

(三)请求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() {
    $.getJSON(
    "webdata/Json_1.aspx",
    function(data) {
               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() {
    $.getJSON(
    "webdata/Json_1.txt",
    function(data) {
        var tt = "";
        $.each(data, function(k, v) {
            tt += k + ":" + v + "<br/>";
        })
        $("#divmessage").html(tt);
    });
}

 

解析的方法与其它的相同。

 

对于多行的如下:

文本:

[

{Unid:1,CustomerName:"宋江",Memo:"天魁星",Other:"黑三郎"},

{Unid:2,CustomerName:"吴用",Memo:"天机星",Other:"智多星"}

]


 

解析:

 
function GetCustomer_TxtList() {
    $.getJSON(
    "webdata/Json_1.txt",
    function(data) {
        var tt = "";
        $.each(data, function(k, v) {
            $.each(v, function(kk, vv) {
                tt += kk + ":" + vv + "<br/>";
            });
        });
        $("#divmessage").html(tt);
    });
}

 

与其它的相同。

(五)带参数ajax请求

以ashx为例子,按客户id来请求客户。

·Ashx文件

 
if(context.Request["iUnid"]==null)
   return;

context.Response.ContentType = "text/plain";

Customer customer = new Customer
{ 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);
      

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);
context.Response.Write(strJson);

 

·ajax请求

 
function GetCustomer_AshxWithPara() {
    $.getJSON(
    "webdata/Json_2.ashx",
    { iUnid: 1 },
    function(data) {
        var tt = "";
        $.each(data, function(k, v) {
            $.each(v, function(kk, vv) {
                tt += kk + ":" + vv + "<br/>";
            });
        });

        $("#divmessage").html(tt);
    });
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值