首页 新闻 会员 周边

有关JSON格式数据的问题

0
[已关闭问题] 关闭于 2012-09-22 09:43

为什么Json对象不使用eval()方法,直接进行输出的时候,输出的全是object?感觉有点想法,但就是抓不住,求指点.....

轻狂の书生的主页 轻狂の书生 | 小虾三级 | 园豆:1042
提问于:2012-09-13 09:00
< >
分享
所有回答(4)
0

var bar ={"name":"kobe"}

类似这样的定义跟对象的定义不是一样啊 ,看上去也是json

chenping2008 | 园豆:9836 (大侠五级) | 2012-09-13 09:24
0

eval 就是执行 js 语句

比如 eval("var bar ={"name":"kobe"}"),这时相当于写了一句var bar ={"name":"kobe"};

这时便可以使用 bar 变量

哇~怪兽 | 园豆:622 (小虾三级) | 2012-09-13 11:05
0

 最近在研究这个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对象了.

yj_smile | 园豆:228 (菜鸟二级) | 2012-09-13 23:25
0

json使用是来比较间的那,你先去看看基础知识,因为它比较有规律,你一下子就可以学会了的。

这里有一篇帖子是关于JSON基础入门的帖子http://www.dobug.net/showtopic-356.html,不知道能否帮助你

pasig10038 | 园豆:387 (菜鸟二级) | 2012-09-15 16:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册