前台: 
 $(".f_left_ul ul li").each(function () {
                $(this).click(function () {
                    $.post("NewsHandler.ashx", { id: $(this).children("img").attr("alt") },
                    function (data) {
                        var json = eval('(' + data + ')');
                        alert(json.Title);
                    });
                });
            });
        })
后台:
 public void ProcessRequest (HttpContext context) {
        int NewsID =int.Parse(context.Request["id"]);
        List<Model.News> list = BLL.News.GetListNews(NewsID);
        JavaScriptSerializer jss = new JavaScriptSerializer();
        string json = jss.Serialize(list);
        context.Response.Write(json);    }
此段返回的json数据值有一条。我把json数据通过jquery全部打印到页面是有值的,只的怎么取json中一个值不是很清楚。按上面的代码打印出来的为undefined;请问哪里错了? 

解决方案 »

  1.   

     int NewsID =int.Parse(context.Request.Form["id"]);
      List<Model.News> list = BLL.News.GetListNews(NewsID);
      JavaScriptSerializer jss = new JavaScriptSerializer();
      string json = jss.Serialize(list);
      context.Response.Write(json);
      

  2.   

    用Firebug或者Chrome的插件
    1.监视你的发送的请求参数,Id,看数据类型是对的
    2.断点查看你的返回的json数据是否是正确的格式。
    因为看不到你的代码,只能从这两方面着手了。
      

  3.   

    要这样获取                    JavaScriptSerializer serializer = new JavaScriptSerializer();
                        Dictionary<string, object> rst = (Dictionary<string, object>)serializer.DeserializeObject(list);
    //具体的得根据json的格式来写。
    if (rst["result"].GetType().FullName == "System.Object[]")
                        {
                            object[] results = (object[])rst["result"]; foreach (object obj in results)
                            {
                                Dictionary<string, object> result = (Dictionary<string, object>)obj;
                                Dictionary<string, object> value = (Dictionary<string, object>)result["value"];
      

  4.   

    谢谢  var title = (eval('(' + data.substring(1).substring(0, data.length - 2) + ')').Title);这样就取到了