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

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格式哦。我记得要加\