扫码关注官方订阅号
js如何判断一个字符串是否为json格式
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
function isJSON(str) { if (typeof str == 'string') { try { JSON.parse(str); return true; } catch(e) { console.log(e); return false; } } console.log('It is not a string!') }
以上try/catch的确实不能完全检验一个字符串是JSON格式的字符串,有许多例外:
try/catch
JSON
JSON.parse('123'); // 123 JSON.parse('{}'); // {} JSON.parse('true'); // true JSON.parse('"foo"'); // "foo" JSON.parse('[1, 5, "false"]'); // [1, 5, "false"] JSON.parse('null'); // null
仔细看看了看比较靠谱的可能是通过正则做判断,但是正则要写的全面才行,下边是一个:
function isJSON (str, pass_object) { if (pass_object && isObject(str)) return true; if (!isString(str)) return false; str = str.replace(/\s/g, '').replace(/\n|\r/, ''); if (/^\{(.*?)\}$/.test(str)) return /"(.*?)":(.*?)/g.test(str); if (/^\[(.*?)\]$/.test(str)) { return str.replace(/^\[/, '') .replace(/\]$/, '') .replace(/},{/g, '}\n{') .split(/\n/) .map(function (s) { return isJSON(s); }) .reduce(function (prev, curr) { return !!curr; }); } return false; }
这个是github上别人写的一段正则,我也没有深入验证,只是提供一个思路,也可以试试使用这个叫做is-json的库,但是可能也不全面,仅供参考。
JSON.parse();有报错不是,没有就是
var isjsonPre = typeof (ztrack.uid) == "object" && Object.prototype.toString.call(ztrack.uid).toLowerCase() == "[object object]" && !ztrack.uid.length;
其中ztrack.uid就是你要判断的
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
以上
try/catch的确实不能完全检验一个字符串是JSON格式的字符串,有许多例外:仔细看看了看比较靠谱的可能是通过正则做判断,但是正则要写的全面才行,下边是一个:
这个是github上别人写的一段正则,我也没有深入验证,只是提供一个思路,也可以试试使用这个叫做is-json的库,但是可能也不全面,仅供参考。
JSON.parse();有报错不是,没有就是
var isjsonPre = typeof (ztrack.uid) == "object" && Object.prototype.toString.call(ztrack.uid).toLowerCase() == "[object object]" && !ztrack.uid.length;
其中ztrack.uid就是你要判断的