Jquery getJSON方法分析(一)

本文介绍如何使用jQuery的getJSON方法从服务器获取并解析JSON数据,包括单个对象及对象数组的处理方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

准备工作

·Customer类

复制代码
public   class  Customer
{
    
{
     public   int  Unid {  get set ; }
    
     public   string  CustomerName {  get set ; }
    
     public   string  Memo {  get set ; }
    
     public   string  Other {  get set ; }
}
}
复制代码

 

·服务端处理(Json_1.ashx)

Customer customer  =   new  Customer 
      { Unid
      { Unid = 1 ,CustomerName = " 宋江 " ,Memo = " 天魁星 " ,Other = " 黑三郎 " };
string  strJson  =  Newtonsoft.Json.JsonConvert.SerializeObject(customer);

context.Response.Write(strJson);

context.Response.Write(strJson);

 

(一)Jquery. getJSON

方法定义:jQuery.getJSON( url, data, callback )

通过get请求得到json数据

·url用于提供json数据的地址页

·data(Optional)用于传送到服务器的键值对

·callback(Optional)回调函数,json数据请求成功后的处理函数

function (data, textStatus) {
        
         //  data是一个json对象
         //  textStatus will be "success"
        this //  the options for this ajax request
}

 

(1)一个对象

$.getJSON(
     " webdata/Json_1.ashx " ,
    
     function (data) {
       $(
       $( " #divmessage " ).text(data.CustomerName);
    }
);
    }
);

 

向Json_1.ashx地址请求json数据,接收到数据后,在function中处理data数据。 这里的data的数据是一条记录,对应于一个customer实例,其中的数据以k/v形式存在。即以[object,object]数组形式存在。

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

所以在访问时,以data.Property来访问,下面以k/v循环来打印这条宋江的记录:

复制代码
$.getJSON(
     " webdata/Json_1.ashx " ,
    
     function (data) {
        
         var  tt = "" ;
        $.each(data, 
        $.each(data,  function (k, v) {
            tt 
            tt  +=  k  +   " "   +  v  +   " <br/> " ;
        })
        $(
        })
        $( " #divmessage " ).html(tt);
});
});
复制代码

 

结果:

Unid:1

CustomerName:宋江

Memo:天魁星

Other:黑三郎

(2)对象数组

Ashx文件(Json_1.ashx)修改:

复制代码
List < Customer >  _list  =   new  List < Customer > (); 
Customer customer 
Customer customer  =   new  Customer 
       { Unid
       { Unid = 1 ,CustomerName = " 宋江 " ,Memo = " 天魁星 " ,Other = " 黑三郎 " };
Customer customer2 
Customer customer2  =   new  Customer 
       { Unid 
       { Unid  =   2 , CustomerName  =   " 吴用 " , Memo  =   " 天机星 " , Other  =   " 智多星 "  };

_list.Add(customer);
_list.Add(customer2);

_list.Add(customer);
_list.Add(customer2);
string  strJson  =  Newtonsoft.Json.JsonConvert.SerializeObject(_list);
复制代码

 

它生成的json对象的字符串是:

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

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

这里可以看到做为集合的json对象不是再一条记录,而是2条记录,是一个[[object,object]]数组:[object,object][object,object],而每个[object,object]表示一条记录,对应一个Customer,其实也是k/v的形式,而这个v就是一个Customer对象,而这个k是从0开始的索引。

复制代码
$.getJSON(
     " webdata/Json_1.ashx " ,
    
     function (data) {
        $.each(data, 
        $.each(data,  function (k, v) {
            alert(k);
        });
});
            alert(k);
        });
});
复制代码

 

这时,k值为0,1……

列表json对象的方法:

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

 

结果:

Unid:1

CustomerName:宋江

Memo:天魁星

Other:黑三郎

Unid:2

CustomerName:吴用

Memo:天机星

Other:智多星

 

这里用了嵌套循环,第一个循环用于从List中遍历Customer对象,第二个循环用于从Customer对象中遍历Customer对象的属性,也就是k/v对。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值