繁体   English   中英

为什么此JSON.parse返回错误:“意外的令牌非法”?

[英]Why does this JSON.parse return error: “unexpected token illegal”?

我正在使用AJAX请求。 这是我第一次使用JSON或其任何方法。 ajax实用程序将一个参数作为我请求文件的responseText或responseXML返回到onreadystatechange回调。 使用简单的info.txtrequest.responseText可以很好地工作,但是当我尝试info.jsJSON.parse时,如果我多次检查语法是否正确,它将返回“意外的令牌非法”。 这是JSON:

JSON:

{
    first: 1,
    second: 2
}

JSON.parse()在语法上非常严格。 键/值对应采用以下形式:

string:value

因此,“第一个”和“第二个”应该是JSON对象中的字符串。 将您的JSON更改为以下代码,它应该是正确的

{
    "first": 1,
    "second": 2
}

您似乎已经在成功回调中使用了jQuery。 jQuery还具有执行AJAX请求的方法,例如$.ajax使您的AJAX自定义函数非常无用。 就您而言,您似乎在请求一个不同于JSON的JavaScript文件(.js)。 所以:

(function() {
    $.getScript('json.js', function(result) {
        // TODO: do something with the result
    });
})();

或JSON:

(function() {
    $.getJSON('json.js', function(result) {
        // TODO: do something with the result
    });
})();

话虽如此,您仍然可以继续使用您的方法,但是如果您的json.js不包含有效的JSON字符串, JSON.parse(e)将始终失败。 要验证其是否包含有效的JSON字符串,您可以在http://jsonlint.com上对其进行验证

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM