📅  最后修改于: 2023-12-03 15:35:27.965000             🧑  作者: Mango
Underscore.js 是一个 JavaScript 工具库,提供了很多实用的函数和方法。其中的 _.isJSON() 方法可以用来判断一个字符串是否为 JSON 格式。
_.isJSON(object)
参数:
object
:要判断的对象。返回值:
true
。false
。以下是使用 _.isJSON() 方法的示例:
_.isJSON('{"name":"Tom","age":20}'); // true
_.isJSON('{name:"Tom",age:20}'); // false
_.isJSON({name: "Tom", age: 20}); // false
_.isJSON() 方法的实现原理比较简单,它先使用正则表达式检测字符串是否以 "{" 开头和以 "}" 结尾,如果是,则说明可能是 JSON 格式的字符串。然后再尝试将字符串转换为 JSON 对象,如果转换成功,则说明该字符串是 JSON 格式的。
以下是 _.isJSON() 方法的源码:
_.isJSON = function(obj) {
if (!_.isString(obj)) return false;
obj = obj.trim();
if ((obj.startsWith('{') && obj.endsWith('}')) ||
(obj.startsWith('[') && obj.endsWith(']')) ) {
try {
JSON.parse(obj);
return true;
} catch(e) {
return false;
}
}
return false;
};
以上源码中,_.isString() 方法是 Underscore.js 定义的方法,用于判断一个对象是否为字符串类型。startsWith() 和 endsWith() 方法是 ECMA Script 6 定义的方法,用于判断字符串是否以某个字符开头或结尾。JSON.parse() 方法是 JavaScript 原生的方法,用于将字符串解析成 JSON 对象。