我想将字符串var解析为json对象,但它始终不是json。如果它不是json我希望它以它的形式返回。我试过JSON.parse,但是当var是纯字符串时它会发布错误,最后我得到了JSON.parse(JSON.stringify(var)),我想知道是否有办法判断一个字符串可以解析为json或者不,所以我可以保存" stingify"相。
答案 0 :(得分:0)
你可以使用try / catch。如果在尝试解析时遇到异常,则表示它无效json
var victim=....;
var output;
try {
output = JSON.parse(victim);
} catch (e) {
output = victim;
}
答案 1 :(得分:0)
没有比实际解析和知道它是否有效更好的方法了。您可以使用try
/ catch
块来设置变量,然后将其返回。
function toJSON(str) {
var rtn;
try { rtn = JSON.parse(str); } // try to set it
catch (e) { rtn = str; } // if error set it to str
return rtn; // finally return
}