我想检查收到的字符串是否是JSON,我尝试了以下代码:
try {
JSON.parse(-10); // Same for "-10"
}catch(e) {
console.log('inside catch');
}
代码永远不会进入catch块!为什么会这样?
答案 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');
}