JS如何判断一个字符串是不是JSON格式

JavaScript011

JS如何判断一个字符串是不是JSON格式,第1张

// 所谓json格式,无非就是对象或者数组

// 就是所谓的{}、[]

var str = "  {}"

var obj = null

try{

    obj = eval("(" + str + ")")

}catch(e){

}

var xy = Object.prototype.toString.call(obj)

if (xy == "[object Object]" || xy == "[object Array]") {

    console.log("是json格式")

} else {

    console.error("不是json格式")

}

试着解码一下,加上try...catch。<br>例如:<br>try{<br>var obj = eval('(' + str + ')')<br>alert("str是json字符串")<br>}<br>catch(e){<br>alert("str不是json字符串")<br>}

判断对象是否是json格式的对象

/***** 判断是否为json对象 *******

* @param obj: 对象(可以是jq取到对象)

* @return isjson: 是否是json对象 true/false

*/

jm.isJson = function(obj){

var isjson = typeof(obj) == "object" &&Object.prototype.toString.call(obj).toLowerCase() == "[object object]" &&!obj.length

return isjson

}