json数据问题

var jsonstr="{ "Head":
[{"name":"1111",sex:"s"},
{"name":"1111",sex:"s"},
{"name":"1111",sex:"s"},
{"name":"1111",sex:"s"},
{"name":"1111",sex:"s"},
{"name":"1111",sex:"s"},
{"name":"1111",sex:"s"},
{"name":"1111",sex:"s"},
{"name":"1111",sex:"s"}]}";
var json = eval("("+jsonstr+")");
以上是写在一个jsonstr.js文件中,然后在页面调用,是哪里有问题,列表显示不出来,麻烦大家帮我看看

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">



jquerytable

$(function(){ $('#clickme').on('click',function(){ $.ajax({ type: "POST", url:"jsonstr.js", dataType:"json", success: success, error: error }); function success(json){ $.each(json,function(i){ var cont = ''; cont += "<tr class='itemtemplate'>"; cont += " <td editable='true'>"; cont += " "+json[i].name+" "; cont += " </td>"; cont += " <td editable='true'>"; cont += " "+json[i].sex+""; cont += " </td>"; cont += " </tr>"; }); $('#test').append(cont); } function error(){ $('#clickme').html('出现错误'); } }); });

clickme
姓名性别


这段代码中存在4个错误:
1、Ajax请求响应有问题。因为你请求的是一个文件,那么这么文件只能是一个影响文本。
把响应jsonstr.js修改为:{ "Head":
[{"name":"1111",sex:"s"},{"name":"1111",sex:"s"},{"name":"1111",sex:"s"},{"name":"1111",sex:"s"},{"name":"1111",sex:"s"},{"name":"1111",sex:"s"},{"name":"1111",sex:"s"},{"name":"1111",sex:"s"},{"name":"1111",sex:"s"}]}
2、Ajax请求是文本,那么dataType:'text'
3、在success方法中,接收到文本再eval,由于数据是Head,所以我们使用到是结果中的Head,而不是直接使用响应结果。json= eval("("+json+")"); json = json.Head;
4、var cont = '';应该定义在each外面,否则$('#test').append(cont);出错。

亲, 8)
[color=red]// 此处的json=json.Header[/color]
$.each(json,function(i){
var name = json[i].name;
};

[code="java"]
var jsonHead ={ "Head":
[{"name":"1111",sex:"s"},
{"name":"1111",sex:"s"},
{"name":"1111",sex:"s"},
{"name":"1111",sex:"s"},
{"name":"1111",sex:"s"},
{"name":"1111",sex:"s"},
{"name":"1111",sex:"s"},
{"name":"1111",sex:"s"},
{"name":"1111",sex:"s"}]};
var json = jsonHead.Head;
[/code]