单纯的用JSON.parse(str)不能完全检验一个字符串是JSON格式的字符串,有许多例外,能够转换成功的有:数字、字符串、布尔、数组、空对象、null、json。
其中正确的JSON格式有:数组、空对象、json;所以得出以下结论:如果JSON.parse能够转换成功;并且转换后的类型为object 且不等于 null,那么这个字符串就是JSON格式的字符串。
function isJSON(str) {
if (typeof str == 'string') {
try {
var obj=JSON.parse(str);
if(typeof obj == 'object' && obj ){
return true;
}else{
return false;
}
} catch(e) {
console.log('error:'+str+'!!!'+e);
return false;
}
}
console.log('It is not a string!')
}