读取json数据没反应

ljyabc1028 2011-08-05 12:07:01
-------------页面代码----------
<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 +

"  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标签 下的内容可以清空,但是不能填充返回的数据
...全文
348 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xugmailcom 2011-08-05
  • 打赏
  • 举报
回复
不懂,但是顶一下,测试积分
潮起潮落 2011-08-05
  • 打赏
  • 举报
回复
context.Response.ContentType = "text/plain";

改成"application/json"看看

或者用firefox,在控制台看看请求头和响应头,还有响应数据。
ljyabc1028 2011-08-05
  • 打赏
  • 举报
回复
在各位的指点下,终于可以了,非常感谢各位,特别是3楼和7楼,谢谢
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 hongmei85 的回复:]
改成string data = "[{\"name\":\"ants\",\"age\":\"24\"},{\"name\":\"lele\",\"age\":\"23\"}]";

就不用换jq版本
[/Quote]

+1 json不规范引起的
另外context.Response.ContentType = "application/json";
hongmei85 2011-08-05
  • 打赏
  • 举报
回复
改成string data = "[{\"name\":\"ants\",\"age\":\"24\"},{\"name\":\"lele\",\"age\":\"23\"}]";

就不用换jq版本
hongmei85 2011-08-05
  • 打赏
  • 举报
回复
楼主的jq.js可能是1.5版的,换个版本就可以,例如jquery-1.2.pack.js
luohuijun619 2011-08-05
  • 打赏
  • 举报
回复
lz返回的数据不是json类型,改成json,
ljyabc1028 2011-08-05
  • 打赏
  • 举报
回复
现在在外面,中午回去试下,麻烦大家了,我会努力的
bao22314483 2011-08-05
  • 打赏
  • 举报
回复
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解析和組織的類比較,直接這樣寫非常繁瑣的

87,990

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧