当JSONLint告诉我JSON字符串有效时,JSON.parse语法错误


JSON.parse syntax error while JSONLint tell me that json string is valid

我使用PHP内置函数json_encode()将对象数组转换为json string。然后使用AJAX方法得到xmlhttp.responseText。我使用document.write(xmlhttp.responseText)来检查响应字符串。例如,字符串如下:

{"index":0,"marks":2}

但是,当我使用JSON.parse()解析JSON字符串时,我会遇到语法错误。所以,我把这个字符串复制到JSONLint来检查它是否有效,结果是否定的。

Parse error on line 1:
{    "index": 0
^
Expecting '{', '['

但当我手动输入时,它是有效的。为什么?

您的responseText中可能有一些零宽度的空白字符或类似字符。

需要注意的是,我强烈建议使用console.log而不是document.write进行调试。