读书人

json前台解析listlt;实体gt;有关问题

发布时间: 2012-04-27 11:57:44 作者: rapoo

json前台解析list<实体>问题
$.ajax({
type: "POST",
contentType: "application/json",
url: "gorg.aspx/select",
data: "{time:'" + date + "',grogid:'" + parastr + "'}",
dataType: 'json',
success: function (list) {
$(list.d).each(function () {
//alert(list.id, function (i, item) {
//alert(list.Id);
//$('#id1').append(this.toString() + " ");
//alert(list.d.join(" | ").grogid);
});

// jQuery.each(list.time, function (i, item) {
// alert(item.time + "," + item.grogid);
// });
}
});

[解决办法]
什么问题?
list返回的什么内容,楼主要实现什么效果?
[解决办法]
success: function (list) {
data = jQuery.parseJSON(list.d); /*这里是否解析要看后台返回的数据格式,如果不返回表名则无需要 parseJSON */
t = "<table border='1'>";
$.each( function (i, item) {
t += "<tr>";
t += "<td>" + item.UserId + "</td>";
t += "<td>" + item.UserName + "</td>";
t += "</tr>";
})
t += "</table>";
$("#result").html(t);
}
[解决办法]
是自定义的
完整的例子,可以直接拷贝粘贴运行的,。需要.net 3.5之后的版本

HTML code
<%@ Page Language="C#" EnableViewState="false" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head>  <script src="jquery-1.7.1.min.js" type="text/javascript"></script>  <script type="text/javascript">    $.ajax({      type: "POST",      contentType: "application/json",      url: "b.aspx/select",/* 对应后台的方法 */      data: "{time:'传入参数1',grogid:'传入参数2'}",      dataType: 'json',      success: function (list) {        jsonData = jQuery.parseJSON(list.d);        var t = "<table border='1'>";        $(jsonData).each(function (i, item) {          t += "<tr>";          t += "<td>" + item.Name + "</td>";          t += "<td>" + item.Url + "</td>";          t += "</tr>";        });        t += "</table>";        $("#div2").html(t);      },      error: function (err) {        alert(err.responseText)      }    });  </script></head><script runat="server">  //定义例子实体类  // <summary>  /// 类对象需要标记为DataContractAttribute  /// </summary>  [System.Runtime.Serialization.DataContract]  public class MengxianHui  {    //成员需要标记为 DataMember    [System.Runtime.Serialization.DataMember]    public string Name { set; get; }    [System.Runtime.Serialization.DataMember]    public string Url { set; get; }  }  public static string ObjectToJson(object obj)  {    System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(obj.GetType());    using (System.IO.MemoryStream ms = new System.IO.MemoryStream())    {      serializer.WriteObject(ms, obj);      StringBuilder sb = new StringBuilder();      sb.Append(Encoding.UTF8.GetString(ms.ToArray()));      return sb.ToString();    }  }  [System.Web.Services.WebMethod]  public static string select(string time, string grogid)  {    //构造实体类集合    List<MengxianHui> l = new List<MengxianHui>();    l.Add(new MengxianHui() { Name = "aaa" + time, Url = "ccc" + grogid });    l.Add(new MengxianHui() { Name = "测试Name", Url = "测试 Url" });    return ObjectToJson(l);  }  protected void Page_Load(object sender, EventArgs e)  {  }</script><body>  <form id="form1" runat="server">  <div id="div2"></div>  </form></body></html> 

读书人网 >Ajax

热点推荐