var bar ={"name":"kobe"}
类似这样的定义跟对象的定义不是一样啊 ,看上去也是json
eval 就是执行 js 语句
比如 eval("var bar ={"name":"kobe"}"),这时相当于写了一句var bar ={"name":"kobe"};
这时便可以使用 bar 变量
最近在研究这个jquery自带的轻量级的json,发现这句话是eval本身的问题。 由于json是以”{}”的方式来开始以及结束的,在JS中,它会被当成一个语句块来处理,所以必须强制性的将它转换成一种表达式
而对于服务器返回的JSON字符串,如果jquery异步请求将type(一般为这个配置属性)设为“json”,或者利用$.getJSON()方法获得服务器返回,那么就不需要eval()方法了,因为这时候得到的结果已经是json对象了,只需直接调用该对象即可
这里特别需要注意的是eval()方法是动态执行其中字符串(可能是js脚本)的,这样很容易会造成系统的安全问题。所以可以采用一些规避了eval()的第三方客户端脚本库,比如JSON in JavaScript就提供了一个不超过3k的脚本库。
后者就是使用Function对象来完成,它的典型应用就是在JQUERY中的AJAX方法下的success等对于返回数据data的解析
var json='{"name":"CJ","age":18}';
data =(new Function("","return "+json))();
此时的data就是一个会解析成一个 json对象了.
json使用是来比较间的那,你先去看看基础知识,因为它比较有规律,你一下子就可以学会了的。
这里有一篇帖子是关于JSON基础入门的帖子http://www.dobug.net/showtopic-356.html,不知道能否帮助你