用 eval("("+str+")") 方式解析加不加上引号都可以。用 JSON.parse(str) 方式解析就必须加上引号。
为什么要 eval这里要添加 “("("+data+")");呢?
原因在于:eval本身的问题。 由于json是以”{}”的方式来开始以及结束的,在JS中,它会被当成一个语句块来处理,所以必须强制性的将它转换成一种表达式。