我对JSON.parse的功能感到困惑。
我正在编写代码:
dynamicMsgObj = '"rest, no disc"';
var jsonObj = {};
var isJsonString = function isJsonString(str) {
try {
jsonObj = JSON.parse(str);
} catch (e) {
return false;
}
return true;
}(dynamicMsgObj);
console.log(isJsonString);// returns true
console.log(typeof jsonObj);//returns string
这是怎么回事? 通过这种方式,我无法确定我是否正在接收字符串或对象,这是我的主要目标。 请帮忙
答案 0 :(得分:2)
因为JSON.parse
能够成功解析该输入,它会将其解析为字符串,字符串就是返回结果。
Check out the documentation并查看示例。这个具体是:
JSON.parse('"foo"'); // "foo"
关于实现目标,你已经做到了:
if(isJsonString && typeof jsonObj == 'string')
// is string
else
// is something else