如何在不使用Try / Catch的情况下检查字符串在JavaScript中是否为有效的JSON字符串
就像是: var jsonString = '{ "Id": 1, "Name": "Coke" }'; //should be true IsJsonString(jsonString); //should be false IsJsonString("foo"); IsJsonString("<div>foo</div>") 解决方案不应包含try / catch。 我们中的一些人打开“打破所有错误”,他们不喜欢调试器打破那些无效的JSON字符串。 #1楼 function get_json(txt) { var data try { data = eval('('+txt+')'); } catch(e){ data = false; } return data; } 如果有错误,则返回false。 如果没有错误,则返回json数据 #2楼 我知道我对这个问题迟到了3年,但我感觉很高兴。 尽管Gumbo的解决方案效果很好,但它不能处理少数情况下 JSON.parse({something that isn't JSON}) 异常)不会引发异常的情况。 我还希望同时返回解析后的JSON,因此调用代码不必再次调用 JSON.parse(jsonString) 。 这似乎很好地满足了我的需求: function tryParseJSON (jsonString){ try {