本文主要讲解json的实现。
json的结构为: {\"data\":[{\"key1\":\"1\"},{\"key2\":\"2\"},{\"key3\":\"3\"}]}
因为要进行输出,所以里边加了转义符,希望大家不要在此迷惑。下边,我就以我网站中的一段程序进行说明。在此,假设大家对ajax的应用已经有所了解。
前台程序:
$.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); //输出类别 } }); } });后台程序:
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\"}]}
本篇主要说明了json的基本结构以及和jquery配合使用的方法。希望能对大家有所帮助。