日期:2014-05-17  浏览次数:20399 次

怎么使用json的数据啊???????????????
我用jQuery的 Ajax去获取数据返回json格式的数据
 jQuery.ajax({
        type: "POST",
        url: "../Ajax/ThePublic.ashx?OwnType=Getcode&code=" + codeId,
        dataType: "json",
        success: function (GetValue) {
            alert(GetValue.programmers.hard_type);
        },
        error: function (XmlHttpRequest, textStatus, errorThrown) {
            alert('错误:' + XmlHttpRequest.responseText);                    }
    });

后台:
 public string jsonGe(DataTable dt) {
            StringBuilder sb = new StringBuilder();
            sb.Append("{");
            sb.Append("\"programmers\":[{");
            for (int i = 0; i < dt.Rows.Count;i++ )
            {
                for (int j = 0; j < dt.Columns.Count;j++ )
                {
                    sb.Append("\""+dt.Columns[j].ColumnName.ToString()+"\":");
                    sb.Append("\"" + dt.Rows[i][j].ToString() + "\",");
                }
            }
            sb.Append("}]}");
            return sb.ToString();
        }
返回的json格式数据:{ "programmers": [{ "firstName": "Brett", "lastName": "McLaughlin", "email": "aaaa"}] }
在得到数据那里用alert(GetValue.programmers[0].hard_type);去弹出查看时就不行,显示错误:错误: 无法获取属性“0”的值: 对象为 null 或未定义。
但是我直接在函数里面这样写上:var people = { "programmers": [{ "firstName": "Brett", "lastName": "McLaughlin", "email": "aaaa"}] }
用alert(GetValue.programmers[0].firstName); 去弹出数据都能正确,就是在后台返回的这样的格式去弹出就报错。请问这么解决啊,这个是那里出问题了?
还有个就是  dataType: "json", 这个是正确的但是先进入error里面再进入success 这里,写成错误的dateType: "json",  这样就先进入success里面,有错误才进error里面,我都被搞糊涂了。