我的服务器有一个 json,它是 -
{"canApprove": true,"hasDisplayed": false}
我可以像这样解析 json -
var msg = JSON.parse('{"canApprove": true,"hasDisplayed": false}');
alert(msg.canApprove); //shows true.
在我的 ajax 响应函数中,我通过方法参数捕获了前面提到的相同 json jsonObject
-
//response function
function(jsonObject){
//here jsonObject contains the same json - {"canApprove":true,"hasDisplayed": false}
//But without the surrounding single quote
//I have confirmed about this by seeing my server side log.
var msg = JSON.parse(jsonObject); // this gives the error
}
但现在我收到以下错误 -
SyntaxError: JSON.parse: JSON 数据第 1 行第 2 列出现意外字符
谁能告诉我为什么会出现错误?
原文由 Razib 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果服务器正在发送有效的 JSON,我认为您不应该调用
JSON.parse(jsonObject)
,因为它会在检索响应时自动解析。我相信,如果您设置Content-type: application/json
标题,它将被自动解析。尝试使用
jsonObject
就好像它已经被解析过一样,类似于:没有调用
JSON.parse
之前。