jQuery下如何使用Json传递数据

json的结构为: {\"data\":[{\"key1\":\"1\"},{\"key2\":\"2\"},{\"key3\":\"3\"}]}

因为要进行输出,所以里边加了转义符,希望大家不要在此迷惑。下边,我就以我网站中的一段程序进行说明。在此,假设大家对ajax的应用已经有所了解。

前台程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$.ajax({
    
type: 
"post"
,    
//以发送的方式
    
dataType: 
"json"
//返回json格式的数据
    
url: 
"../ajax/search.aspx"
//请求的url
    
data: { 
"key"
: encodeURI(v) }, 
//传递数据,传前先编码,后台查询前先解码
    
success: 
function
(req) {
        
//得到keywords中的数据,见后台返回结果
        
var
 
result = req.keywords;
        
//遍历keywords中的数据
        
jQuery.each(result, 
function
(i, n) {
            
if
 
(n.key == 
"nodata"
) {
                
alert(
"无数据"
);
            
}
            
else
 
{
                
alert(n.key); 
//输出标题
                
alert(n.id); 
//输出ID
                
alert(n.c);  
//输出类别
            
}
        
});
    
}
});

后台程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
if
 
(!
string
.IsNullOrEmpty(Request[
"key"
]))
{
    
//得到查询的关键词
    
keywords = Server.UrlDecode(Request[
"key"
]);
    
DataTable dt = 
new
 
DataTable();
    
//根据关键词得到数据
    
dt = BArticle.getSearch(keywords);
    
if
 
(dt != 
null
 
&& dt.Rows.Count > 0)
    
{
        
//拼接json。
        
result = 
"{\"keywords\":["
;
        
foreach
 
(DataRow dr 
in
 
dt.Rows)
        
{
            
//返回文章标题,文章ID和文章类别
            
result  = 
"{\"key\":\""
 
  dr[
"title"
].ToString()   
"\",\"id\":\""
 
  
int
.Parse(dr[
"id"
].ToString())   
"\",\"c\":\""
 
  
int
.Parse(dr[
"class"
].ToString())   
"\"},"
;
        
}
        
result = result.Substring(0, result.Length - 1);
        
result  = 
"]}"
;
        
if
 
(result.Length > 0)
        
{
            
//输出json数据
            
Response.Write(result);
        
}
    
}
    
else
    
{
        
//无数据时,返回nodata
        
Response.Write(
"{\"keywords\":[{\"key\":\"nodata\"}]}"
);
    
}
}

当然,可以同时输出多个结果集。

如:{\"comment\":[{\"key1\":\"评论1\"},{\"key2\":\"评论2\"}],\"reply\":[{"key1\":\"回复1\"},{"key2\":\"回复2\"}]}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值