我必须解析的字符串来自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) === '{' )
测试第一个字符,但我认为它不够。
实现这一目标的最佳方法是什么?
编辑:这个问题是错误的。
答案 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");
}