将字符串解析为 json,字符串混合

Parse string to json with string mixed

本文关键字:字符串 混合 json      更新时间:2023-09-26

我想将字符串变量解析为 json 对象,但它并不总是 json。如果它不是 json,我希望它按原样返回。我尝试了 JSON.parse,但是当 var 是纯字符串时它会发布错误,最后我得到了 JSON.parse(JSON.stringify(var)),我想知道是否有办法判断字符串是否可以解析为 json,所以我可以保存"stingify"阶段。

没有比实际解析并知道它是否有效更好的方法了。您可以使用 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
}
您可以使用

try/catch。 如果在尝试解析时遇到异常,则表示它不是有效的 JSON

var victim=....;
var output;
try { 
   output = JSON.parse(victim); 
} catch (e) { 
   output = victim;
}