尝试/捕捉检查一个json没有工作

时间:2015-11-20 10:34:20

标签: javascript json

我想检查收到的字符串是否是JSON,我尝试了以下代码:

try {
    JSON.parse(-10); // Same for "-10"
}catch(e) {
    console.log('inside catch');
}

代码永远不会进入catch块!为什么会这样?

2 个答案:

答案 0 :(得分:1)

A plain value is valid JSON。这就是您没有'inside catch'登录的原因。



document.write(JSON.parse(-10));




这不是有效的JSON,但是:



try {
    JSON.parse('{');
}catch(e) {
    document.write('inside catch');
}




如您所见,try / catch工作得很好。

答案 1 :(得分:1)

我认为-10对JSON.parse

有效
JSON.parse('{}');              // {}
JSON.parse('true');            // true
JSON.parse('"foo"');           // "foo"
JSON.parse('[1, 5, "false"]'); // [1, 5, "false"]
JSON.parse('null');            // null

try {
    var a = JSON.parse("{[]]]["); // Same for "-10"
  console.log(a);
}catch(e) {
    console.log('inside catch');
}