我用jquery框架的时候,用到这样一段代码:
 $.proxyReq({url:url,type:"post",success:getSuccess,error:getError});
   
   function getSuccess(data){
   var ret = eval("(" + data + ")");
function getSuccess(data){
   var ret = eval("(" + data + ")");   。。
   。。
  $(ret).each(function(i){})
}数据后台返回给我的是一个json后的List数据我不明白的是
var ret = eval("(" + data + ")");
这里表示什么意思,请给我说下哦,谢谢


解决方案 »

  1.   

    不是很清楚,但是看起来eval是要去执行括号中的方法的返回的是不是js方法名啊
      

  2.   

    貌似问错地方了。楼主都知道什么是Json,难道竟然不知道eval()不成?Json就是用字符串表示的各种类型的字面量,而eval()正好是把字符串解析成表达式的函数,所以没有eval(),Json也就基本上没有存在的意义了。
    如:
    var json = "{string: 'hello, world!', number: 3.14, bool: false}";
    var obj = eval("(" + json + ")");
    alert(obj.string);
    alert(obj.number);
    alert(obj.bool);
    Json的左右各加一个括号是防止eval()把花括号解释成语句块,也可以这样:
    eval("var obj = " + json);
    但可读性较弱。
      

  3.   

    就是将后台返回的json字符串转为一个json对象,这样你才能用"对象.属性"来获取值。