如何捕获JSON.parse()的异常?

时间:2015-05-28 20:51:10

标签: javascript json

我必须解析的字符串来自FileReader(),它可能是有效json文件的内容,也可能是无效的(例如script.js)......

问题是try/catch似乎不适用于JSON.parse()

以下代码不会捕获带有无效文件的异常JSON.parse: unexpected character at line 1 column 1 of the JSON data

try
{
    var json = JSON.parse( content );
    ..
}
catch (e)
{
    ..
}

要进行第一次验证,我使用( content.substr(0, 1) === '{' )测试第一个字符,但我认为它不够。

实现这一目标的最佳方法是什么?

编辑:这个问题是错误的。

2 个答案:

答案 0 :(得分:8)

try-catch适用于JSON.parse。在浏览器控制台中尝试以下操作或使用SO&#39的代码段功能:



try{ 
  JSON.parse("b") 
} catch(e) { 
  document.writeln("Caught: " + e.message)
}




答案 1 :(得分:4)

try..catch块可以与JSON.parse一起使用,您可能做错了其他事情。尝试运行此代码段,看它确实有效:



var unexpectedJSON = '{a}';
try {
    JSON.parse(unexpectedJSON);
}
catch (e) {
    alert("Unexpected value in JSON"); 
}