js如何判断一个字符串是否为json格式
想到一个比较简单的方法:
function isJSON(str) {
if (typeof str == 'string') {
try {
var obj=JSON.parse(str);
if(str.indexOf('{')>-1){
return true;
}else{
return false;
}
} catch(e) {
console.log(e);
return false;
}
}
return false;
}
isJSON(str) {
if (typeof str == 'string') {
try {
var obj=JSON.parse(str);
if(typeof obj == 'object' && obj ){
return true;
}else{
return false;
}
} catch(e) {
return false;
}
}
}
if (JSON.stringify(value) === '{}') {
return false
} else {
try {
if (Object.prototype.toString.call(JSON.parse(value)) === '[object Object]') {
return true
} else {
return false
}
} catch (e) {
return false
}
}
var isjsonPre = typeof (ztrack.uid) == "object" && Object.prototype.toString.call(ztrack.uid).toLowerCase() == "[object object]" && !ztrack.uid.length;
其中ztrack.uid就是你要判断的
6 回答5.2k 阅读✓ 已解决
9 回答9.5k 阅读
5 回答3.7k 阅读✓ 已解决
4 回答8.1k 阅读✓ 已解决
7 回答10.1k 阅读
5 回答8.3k 阅读
2 回答10.4k 阅读✓ 已解决
以上
try/catch
的确实不能完全检验一个字符串是JSON
格式的字符串,有许多例外:仔细看看了看比较靠谱的可能是通过正则做判断,但是正则要写的全面才行,下边是一个:
这个是github上别人写的一段正则,我也没有深入验证,只是提供一个思路,也可以试试使用这个叫做is-json的库,但是可能也不全面,仅供参考。