Javascript 错误:SyntaxError:JSON.parse:意外字符+;非统组织

Javascript 错误:SyntaxError:JSON.parse:意外字符+;非统组织,javascript,c#-4.0,sharepoint-2010,oauth,Javascript,C# 4.0,Sharepoint 2010,Oauth,我得到这个错误: 错误:错误:语法错误:JSON.parse:意外字符 _serviceURl=sharepoint02/LMSRest.svc/rest/GetDemouthPlan?LMSUsername=bfolmer&oauth_consumer_key=Sec&oauth_nonce=8765121&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1363238520&oauth_version=1.0&PageNumber=1&Pag

我得到这个错误:

错误:错误:语法错误:JSON.parse:意外字符

_serviceURl=sharepoint02/LMSRest.svc/rest/GetDemouthPlan?LMSUsername=bfolmer&oauth_consumer_key=Sec&oauth_nonce=8765121&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1363238520&oauth_version=1.0&PageNumber=1&PageSize=5&SortColumn=Coursour&SortDirection=True&oauth_signature=True&oauth_=35;&oauth_signature=351;=35lyfumnuxVwfNux

如果从浏览器收到URL结果:

{
    "MyLearningList": [
        {
            "LearningId": 26,
            "Curriculum": "Administrative Law",
            "CurriculumURL": null,
            "TrainingStatus": "InProgress",
            "StartDate": "10/15/2012",
            "EndDate": "10/15/2013"
        },
        {
            "LearningId": 2,
            "Curriculum": "Architecture",
            "CurriculumURL": null,
            "TrainingStatus": "InProgress",
            "StartDate": "10/15/2012",
            "EndDate": "11/15/2013"
        },
        {
            "LearningId": 11,
            "Curriculum": "Audit",
            "CurriculumURL": null,
            "TrainingStatus": "InProgress",
            "StartDate": "10/15/2012",
            "EndDate": "10/15/2013"
        },
        {
            "LearningId": 21,
            "Curriculum": "Automobile Engg.",
            "CurriculumURL": null,
            "TrainingStatus": "InProgress",
            "StartDate": "10/15/2012",
            "EndDate": "10/15/2013"
        },
        {
            "LearningId": 32,
            "Curriculum": "B. A. M. S. (Bachelor of Ayurvedic Medicine and Surgery)",
            "CurriculumURL": null,
            "TrainingStatus": "InProgress",
            "StartDate": "10/15/2012",
            "EndDate": "10/5/2013"
        }
    ],
    "PageSize": 5,
    "CurrentPageNumber": 1,
    "TotalRecordCount": 39,
    "TotalPageCount": 8,
    "NextPageUrl": "sharepoint02:50000/LMSRest.svc/rest/GetDemoOAuthPlan?LMSUsername=bfolmer&PageNumber=2&PageSize=5&SortColumn=Curriculum&SortDirection=True",
    "PreviousPageUrl": ""
}
以下是我的JavaScript代码:

function BindGrid<%=Tag %>(_serviceURL) {

    //Append the Loading
    $('#tbl<%=Tag %>').append('<tr class="loading"><td colspan="5"><img src="/Style Library/LMS/images/loading.gif" align="top" />&nbsp;&nbsp;Loading...</td></tr>');
    $.support.cors = true;    
    $.ajax({
        type: "GET",
        url: _serviceURL,
        contentType: "application/json",
        timeout: 17000,
        dataType: "json",
        success: function (_result) {

            //Bind the Header
            BindHeader<%=Tag %>();

            if( _result == null || _result == "")
            {
                $('#tbl<%=Tag %>').append('<tr class="bottom"><td colspan="5" class="table-data-error">Error : Some problem fetching the data. Please contact IT team.</td></tr>');
                return ;
            }

            ///Catalog
            var _myObject = (typeof _result) == 'string' ? eval('(' + _result + ')') : _result;


            //Bind the values
            $("input[id*='txtPageSize'][Tag='<%=Tag %>']").val(_myObject.PageSize);
            $("input[id*='txtCurrentPageNumber'][Tag='<%=Tag %>']").val(_myObject.CurrentPageNumber);
            $("input[id*='txtTotalRecordCount'][Tag='<%=Tag %>']").val(_myObject.TotalRecordCount);
            $("input[id*='txtTotalPageCount'][Tag='<%=Tag %>']").val(_myObject.TotalPageCount);
            $("input[id*='txtNextPageUrl'][Tag='<%=Tag %>']").val(_myObject.NextPageUrl);
            $("input[id*='txtPreviousPageUrl'][Tag='<%=Tag %>']").val(_myObject.PreviousPageUrl);

            //Bind the grid
            if (_myObject.MyLearningList == null || _myObject.MyLearningList.length == 0) {
                $('#tbl<%=Tag %>').append('<tr class="bottom"><td colspan="5" class="table-data-message">No course found.</td></tr>');
                return;
            }

            //ITEM START
            for (i = 0; i < _myObject.MyLearningList.length; i = i + 1) {
                //Get the values
                var Curriculum = _myObject.MyLearningList[i].Curriculum;
                var _Status = _myObject.MyLearningList[i].TrainingStatus;
                var _startDate = _myObject.MyLearningList[i].StartDate;
                var _endDate = _myObject.MyLearningList[i].EndDate;


                var _css = "odd";
                if ((i + 1) % 2 == 0)
                { _css = "even"; }

                //Append
                $('#tbl<%=Tag %>').append("<tr class='" + _css + "'><td>" + Curriculum + "</td><td>" + _Status + "</td><td>" + _startDate + "</td><td>" + _endDate + "</td></tr>");
            }
            //ITEM END                    

            //PAGING START
            var _trFooter = "";
            if( _myObject.TotalRecordCount > 0 )
            {
                if( _myObject.PreviousPageUrl != "" )
                {
                    _trFooter = _trFooter + '<td style="width:25%;"><a href="javascript:Previous<%=Tag %>();"><< Previous</a><td>';
                }
                else{
                    _trFooter = _trFooter + '<td style="width:25%;">&nbsp;<td>';
                }

                _trFooter = _trFooter + "<td style='width:50%;font-weight:bold;text-align:center;' nowrap='nowrap'>Page No : "+ _myObject.CurrentPageNumber +" of "+ _myObject.TotalPageCount +"</td>";

                if( _myObject.NextPageUrl != "" )
                {
                    _trFooter = _trFooter + '<td style="width:25%;text-align:right;"><a style="float:right;width:50px;" href="javascript:Next<%=Tag %>();">Next >></a></td>';
                }
                else{
                    _trFooter = _trFooter + '<td style="width:25%;">&nbsp;<td>';
                }

                $('#tbl<%=Tag %>').append('<tr class="bottom"><td colspan="4" class="table-data-paging"><table cellspacing="0" border="0" cellpadding="0" style="width:100%;"><tr>'+ _trFooter +'</tr></table></td></tr>');
            }
            //PAGING END
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {

            //Binds the header
            BindHeader<%=Tag %>();

            //Show the error
            $('#tbl<%=Tag %>').append('<tr class="bottom"><td colspan="5" class="table-data-error">Error : Some error occoured fetching the data. Please contact IT team. Error :'+errorThrown+'</td></tr>');
        }
    });
}      
函数BindGrid(\u serviceURL){
//附加加载
$('tbl')。追加('Loading…');
$.support.cors=true;
$.ajax({
键入:“获取”,
url:_serviceURL,
contentType:“应用程序/json”,
超时:17000,
数据类型:“json”,
成功:函数(_结果){
//绑定标题
BindHeader();
如果(_result==null ||_result==“”)
{
$(“#tbl”).append('错误:获取数据时出现一些问题。请与IT团队联系');
返回;
}
///目录
变量myObject=(typeof结果)='string'?eval('('+'u结果+')):\u结果;
//绑定值
$($input[id*='txtPageSize'][Tag=''”).val(_myObject.PageSize);
$($input[id*='txtCurrentPageNumber'][Tag=''”).val(_myObject.CurrentPageNumber);
$(“输入[id*='txtTotalRecordCount'][Tag='''']”).val(_myObject.TotalRecordCount);
$($input[id*='txtTotalPageCount'][Tag=''”).val(_myObject.TotalPageCount);
$(“输入[id*='txtNextPageUrl'][Tag=''”).val(_myObject.NextPageUrl);
$($input[id*='txtPreviousPageUrl'][Tag=''”).val(_myObject.PreviousPageUrl);
//绑定网格
if(_myObject.MyLearningList==null | | | u myObject.MyLearningList.length==0){
$(“#tbl”).append('未找到课程');
返回;
}
//项目开始
对于(i=0;i<\u myObject.MyLearningList.length;i=i+1){
//获取值
var courseum=\u myObject.MyLearningList[i]。课程;
var(u Status=_myObject.MyLearningList[i].TrainingStatus;
var\u startDate=\u myObject.MyLearningList[i].startDate;
var\u endDate=\u myObject.MyLearningList[i].endDate;
var_css=“奇数”;
如果((i+1)%2==0)
{{u css=“偶数”}
//附加
$('#tbl')。追加(“+课程+”+“+”状态+“+”开始日期+“+”结束日期+”);
}
//项目结束
//寻呼启动
var_trFooter=“”;
如果(_myObject.TotalRecordCount>0)
{
如果(_myObject.PreviousPageUrl!=“”)
{
_trFooter=_trFooter+'';
}
否则{
_trFooter=_trFooter+'';
}
$('#tbl')。附加(''+'trFooter+'');
}
//寻呼端
},
错误:函数(XMLHttpRequest、textStatus、errorshown){
//绑定标题
BindHeader();
//显示错误
$('#tbl').append('错误:获取数据时出现一些错误。请与IT团队联系。错误:'+errorshown+'');
}
});
}      

您的Json是正确的,您可以使用JSONLint进行验证。我还尝试使用JQueryparseJSON方法对其进行解析,结果成功了

代码示例

var _result =
   '{"MyLearningList": [{"LearningId": 26,"Curriculum": "Administrative Law","CurriculumURL": null, "TrainingStatus": "InProgress","StartDate": "10/15/2012","EndDate": "10/15/2013"},{"LearningId": 2,"Curriculum": "Architecture","CurriculumURL": null,"TrainingStatus": "InProgress","StartDate": "10/15/2012","EndDate": "11/15/2013"},{"LearningId": 11,"Curriculum": "Audit","CurriculumURL": null,"TrainingStatus": "InProgress","StartDate": "10/15/2012","EndDate": "10/15/2013"},{"LearningId": 21,"Curriculum": "Automobile Engg.","CurriculumURL": null,"TrainingStatus": "InProgress","StartDate": "10/15/2012","EndDate": "10/15/2013"},{"LearningId": 32,"Curriculum": "B. A. M. S. (Bachelor of Ayurvedic Medicine and Surgery)","CurriculumURL": null,"TrainingStatus": "InProgress","StartDate": "10/15/2012","EndDate": "10/5/2013"}],"PageSize": 5,"CurrentPageNumber": 1,"TotalRecordCount": 39,"TotalPageCount": 8,"NextPageUrl": "sharepoint02:50000/LMSRest.svc/rest/GetDemoOAuthPlan?LMSUsername=bfolmer&PageNumber=2&PageSize=5&SortColumn=Curriculum&SortDirection=True","PreviousPageUrl": ""}';

var obj = $.parseJSON(_result);

alert(obj.PageSize);
alert(obj.NextPageUrl);
使用JSON的工作示例

编辑1: 甚至eval()也工作正常