我有一个简单的AJAX调用,服务器将返回一个包含有用数据的JSON字符串,或者返回一个由PHP函数 mysql_error() 生成的错误消息字符串。如何测试此数据是JSON字符串还是错误消息。
mysql_error()
使用一个名为 isJSON 的函数会很好,就像您可以使用函数 instanceof 来测试某个东西是否是一个数组一样。
isJSON
instanceof
这就是我想要的:
if (isJSON(data)){ //do some data stuff }else{ //report the error alert(data); }
发布于 2012-03-21 20:42:27
使用JSON.parse
function isJson(str) { try { JSON.parse(str); } catch (e) { return false; return true; }
发布于 2015-10-27 21:56:03
此代码为 JSON.parse(1234) 、 JSON.parse(0) 、 JSON.parse(false) 或 JSON.parse(null) ,所有这些都将返回true。
JSON.parse(1234)
JSON.parse(0)
JSON.parse(false)
JSON.parse(null)
所以我用这种方式重写了代码:
function isJson(item) { item = typeof item !== "string" ? JSON.stringify(item) : item; try { item = JSON.parse(item); } catch (e) { return false;