我正在创建一个允许用户以 JSON 格式加载数据的 Web 应用程序。我目前正在使用以下函数来读取我保存在本地磁盘上的 JSON 文件:
function retrieveJSON(url, callback)
{
// this is needed because FireFox tries to parse files as XML
$.ajaxSetup({ mimeType: "text/plain" });
// send out an AJAX request and return the result
$.getJSON(url, function(response) {
console.log("Data acquired successfully");
callback(response);
}).error(function(jqXHR, textStatus, errorThrown) {
console.log("Error...\n" + textStatus + "\n" + errorThrown);
});
}
这非常适用于格式良好的 JSON 数据。但是,对于格式错误的数据,控制台日志会显示以下内容:
Error...
parsererror
SyntaxError: JSON.parse: unexpected character
这几乎完全没有帮助,因为它没有告诉我意外的字符是什么或可以找到它的行号。我可以使用 JSON 验证器来更正本地磁盘上的文件,但是当页面从 Web 上的远程 URL 加载文件时,这不是一个选项。
如何获取任何错误的位置?如果可能,我想获得令牌,但我至少需要获得行号。有一个项目要求向用户显示 JSON 代码的摘录并突出显示发生任何错误的行。
我目前正在使用 jQuery,但 jQuery 不是项目要求,因此如果另一个 API 或 JSON 解析器提供此功能,我可以改用它。