首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

asp.net利用JQuery获取JSON,没法转换为对象

2013-07-09 
asp.net利用JQuery获取JSON,无法转换为对象客户端的JS是这样写的:$.getJSON(/tools/submit_ajax.ashx?act

asp.net利用JQuery获取JSON,无法转换为对象
客户端的JS是这样写的:
    $.getJSON("/tools/submit_ajax.ashx?action=user_job_education_edit&id=" + id, function (json) {
        alert(json.jobeduinfo[0].id);
    });

服务器端代码:

string JsonDt = Common.DatatableToJson.DataTableToJson("jobeduinfo", dt);
context.Response.Write(JsonDt);
return;

通过火狐的firebug查看到返回的是HTML格式的JSON数据:

{"jobeduinfo": [{"id":"1","userid":"299","fromyear":"2003","frommonth":"6","toyear":"2010","tomonth":"7","school":" 湖北大学","profession":"","degree":"6","contents":"360要推便携路由器,个人觉得其主要目的是盯住了用 户无线设备上的信息。因为如果用户移动设备都通过它这个路由器走的话,未加密的数据全部在他掌控之中。 其实Windows 7以上的系统是非常容易建立无线热点的,为了更容易地实现将PC作为无线热点的功能,写了个小工具,希望大家少去用360这种危险的东西。 实现原理其实很简单,调用命令行,运行一下几条命令:"}]}

请问如何转换为JSON对象

eval  $.parseJSON 都试过了! jQuery ASP.NET JSON
[解决办法]
去网上下载一个Newtonsoft.Json.dll
[解决办法]


var jsonstr = '{"jobeduinfo": [{"id":"1","userid":"299","fromyear":"2003","frommonth":"6","toyear":"2010","tomonth":"7","school":" 湖北大学","profession":"","degree":"6","contents":"360要推便携路由器,个人觉得其主要目的是盯住了用 户无线设备上的信息。因为如果用户移动设备都通过它这个路由器走的话,未加密的数据全部在他掌控之中。 其实Windows 7以上的系统是非常容易建立无线热点的,为了更容易地实现将PC作为无线热点的功能,写了个小工具,希望大家少去用360这种危险的东西。 实现原理其实很简单,调用命令行,运行一下几条命令:"}]}';
var jsonobjs = eval("("+jsonstr+")");
console.log(jsonobjs.jobeduinfo[0].userid);

[解决办法]
string JsonDt = Common.DatatableToJson.DataTableToJson("jobeduinfo", dt);
context.Response.Write(JsonDt);
return;

加一句
string JsonDt = Common.DatatableToJson.DataTableToJson("jobeduinfo", dt);
context.Response.ContentType = "application/json";
context.Response.Write(JsonDt);
return;

[解决办法]
使用getJSON的话要标准的Json格式哦。我记得要加\


{"\jobeduinfo": [{"\id":"\1","\userid":"\299","\fromyear":"\2003","\frommonth":"\6","\toyear":"\2010","\tomonth":"\7","\school":"\ 湖北大学","\profession":"\","\degree":"\6","\contents":"\360要推便携路由器,个人觉得其主要目的是盯住了用 户无线设备上的信息。因为如果用户移动设备都通过它这个路由器走的话,未加密的数据全部在他掌控之中。 其实Windows 7以上的系统是非常容易建立无线热点的,为了更容易地实现将PC作为无线热点的功能,写了个小工具,希望大家少去用360这种危险的东西。 实现原理其实很简单,调用命令行,运行一下几条命令:"}]}

就像5楼说的吧!
[解决办法]


firebug看到不是JSON格式!

    $.ajax({
        type: 'post',
        dataType: 'json',
        contentType: "application/json; charset=utf-8",
        url: "/tools/submit_ajax.ashx?action=user_job_education_edit&id=" + id,
        success: function (data) {
            var jsonobjs = eval("(" + data + ")");
            alert(jsonobjs.jobeduinfo[0].userid);
        },
        error: function (data) {
            alert("error" + data);
        }
    });
提示error[object Object]!

说明你返回的不是json格式的数据,所以会失败
[解决办法]
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

string JsonDt = Common.DatatableToJson.DataTableToJson("jobeduinfo", dt);
context.Response.Write(JsonDt);
return;

加一句
string JsonDt = Common.DatatableToJson.DataTableToJson("jobeduinfo", dt); 


context.Response.ContentType = "application/json";
context.Response.Write(JsonDt);
return;



asp.net利用JQuery获取JSON,没法转换为对象
firebug看到不是JSON格式!

    $.ajax({
        type: 'post',
        dataType: 'json',
        contentType: "application/json; charset=utf-8",
        url: "/tools/submit_ajax.ashx?action=user_job_education_edit&id=" + id,
        success: function (data) {
            var jsonobjs = eval("(" + data + ")");
            alert(jsonobjs.jobeduinfo[0].userid);
        },
        error: function (data) {
            alert("error" + data);
        }
    });
提示error[object Object]!

说明你返回的不是json格式的数据,所以会失败


如何解决这个问题?
服务器端我加了:context.Response.ContentType = "application/json";
asp.net利用JQuery获取JSON,没法转换为对象
还是不返回JSON对象!

你调试一下 看你最后串的结果是什么,就是一般处理程序中的 JsonDt 然后贴上来分析一下

热点排行