解析无效的JSON

时间:2012-01-30 19:58:34

标签: javascript json parsing

如果我在无效字符串上使用JSON.parse会发生什么?它会返回错误代码,还是只是破坏脚本?

浏览器的行为是否一致?对于旧浏览器,json2.js也有相同的行为吗?

上下文:我的脚本正在从不同的源收集JSON字符串并对其进行解析。如果字符串格式不正确,我希望我的脚本忽略它并移动到下一个字符串。

2 个答案:

答案 0 :(得分:7)

它会为任何无效语法抛出错误。如果您正在解析的JSON格式不正确,请使用try/catch

try {
  obj = JSON.parse(x)
} catch(e) {
  obj = {}
}

答案 1 :(得分:3)

它会抛出一个可捕获的错误。在适当的浏览器上,it is a SyntaxError。 JSON2的实施mirrors this.