我需要能够解析对象格式或纯字符串格式的字符串。最安全的方法是什么?
我尝试了 JSON.parse(data) 但如果数据是纯字符串,它就不起作用。
编辑-所选的解决方案
谢谢你,这就是我解决问题的方法:
try {
dataObj = JSON.parse(data);
} catch (err) {
if (typeof data === "object") {
dataObj = data;
} else {
dataObj = {};
}
}
为自己创建一个辅助函数并使用它。
function parseValue(value) {
try
{
return JSON.parse(value);
}
catch (ex)
{
// JSON format was invalid
// handle errors is you need to
}
return value;
}
如果您足够勇敢,您还可以扩展 String.prototype,这样调用它就会变得非常简单。
String.prototype.parseJSON = String.prototype.parseJSON || function() {
try
{
return JSON.parse(this);
}
catch (ex)
{
// JSON format was invalid
// handle errors is you need to
}
return this;
};
然后你可以简单地这样称呼它:
// string in a variable
var s = "Some non-JSON string";
s.parseJSON();
// string literal
'{"b":true,"n":1}'.parseJSON();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)