如果我在无效字符串上使用JSON.parse会发生什么?它会返回错误代码,还是只是破坏脚本?
浏览器的行为是否一致?对于旧浏览器,json2.js也有相同的行为吗?
上下文:我的脚本正在从不同的源收集JSON字符串并对其进行解析。如果字符串格式不正确,我希望我的脚本忽略它并移动到下一个字符串。
答案 0 :(得分:7)
它会为任何无效语法抛出错误。如果您正在解析的JSON格式不正确,请使用try/catch
:
try {
obj = JSON.parse(x)
} catch(e) {
obj = {}
}
答案 1 :(得分:3)
它会抛出一个可捕获的错误。在适当的浏览器上,it is a SyntaxError
。 JSON2的实施mirrors this.