-------------页面代码----------
<body> 
<input id="Button1" type="button" value="获取数据" onclick="getData()" /> sdfsdfsadf
<ul id="list"><li>sdfsdf</li></ul> 
</body> 
----------------js文件------------
 <script type="text/jscript">
        $(document).ready(function () {
            $("#btn").click(function () {
                $("#list").html("");
                $.getJSON(
                "ReturnJson.ashx",
                { name: "test", age: 20 },
                function (json) {
                    $("#list").each(json, function (i) {
                        $("#list").append("<li>name:" + json[i].name + "&nbsp; Age:" + json[i].age + "</li>")
                    })                })
            })
        })
    </script>
------------接收的服务页面,用于测试,随便返回点数据而已-------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace Web
{
    /// <summary>
    /// ReturnJson 的摘要说明
    /// </summary>
    public class ReturnJson : IHttpHandler
    {
    public void ProcessRequest (HttpContext context) {
        context.Response.ContentType = "text/plain";
        string data = "[{name:\"ants\",age:24},{name:\"lele\",age:23}]";//构建的json数据
        context.Response.Write(data);
    }
 
    public bool IsReusable {
        get {
            return false;
        }
    }    }
}点击的时候 ul标签 下的内容可以清空,但是不能填充返回的数据

解决方案 »

  1.   

    context.Response.ContentType = "text/plain";改成"application/json"看看或者用firefox,在控制台看看请求头和响应头,还有响应数据。
      

  2.   

    context.Response.Write(data);
    斷點停在這裡然後看看data的格式對不對
    格式應該是這樣的data的字符串應該是這樣的
    [{"name":"ants","age":"24"},{"name":"lele","age":"23"}]
    一定要是雙引號,單引號也不行,JSON這個問題我搞了2個星期才搞明白,都給論壇的人搞糊塗,其實JSON就是字符串而已你可以這樣寫dim data as string  ="[{" & Chr(34) + "name" & Chr(34) & ":" & Chr(34) & "ants" & Chr(34) & "," & Chr(34) & "age" & Chr(34) & ":" & Chr(34) & "24" & Chr(34) & "},{" & Chr(34)& "name" & Chr(34) & ":" & Chr(34) & "age" & Chr(34) & ":" & Chr(34) & "23" & Chr(34)& "}]"這個是VB.net的,C#應該是把&變成+吧,Chr(34)其實就是"這個,總之返回的字符串一定要變成這樣
    [{"name":"ants","age":"24"},{"name":"lele","age":"23"}]
    不然肯定顯示不了數據,你可以自己寫一個JSON解析和組織的類比較,直接這樣寫非常繁瑣的
      

  3.   

    lz返回的数据不是json类型,改成json,
      

  4.   

    楼主的jq.js可能是1.5版的,换个版本就可以,例如jquery-1.2.pack.js
      

  5.   

    改成string data = "[{\"name\":\"ants\",\"age\":\"24\"},{\"name\":\"lele\",\"age\":\"23\"}]";就不用换jq版本
      

  6.   


    +1  json不规范引起的
    另外context.Response.ContentType = "application/json";