后台返回来的数据是json格式的,如[{'name':'pub','number':'2','type':'A  ','status':'0'},
{'name':'dpub','number':'16','type':'A  ','status':'0'}],但在调用 var objData = eval('(' + datas + ')'); 时,总抛出了一个错误,缺少 ‘]’对象,请问这个是什么原因呢,请大家帮我解答下。

解决方案 »

  1.   

    [],
    这个“,” 号应该不由json生成的吧
      

  2.   

    json数据本身就可以直接当js的变量使用的。说白了其实就是健-值的关系。
      

  3.   

    var objData=[{'name':'pub','number':'2','type':'A ','status':'0'},
    {'name':'dpub','number':'16','type':'A ','status':'0'}];
    alert(objData[0].name)
    试下了!
      

  4.   

    我返回的数据集是没有这个‘,’的,完整的数据是,
    "[{'name':'pub','number':'2','type':'A  ','status':'0'},{'name':'sub','number':'4','type':'A  ','status':'0'},{'name':'dpub','number':'16','type':'A  ','status':'0'}]"这一串
      

  5.   

    如果返回的是字符串:"[o,o,o,]",用你的方法应该没问题
    如果返回的是JS数组:[o,o,o],就不能再eval了。
      

  6.   

     恩  对 如果 是字符串就要eval()再循环
    $.each(jsondatas,function(i,n){
     alert(n.属性的值);
    })
    //如果是[{}]表示是数组类型 解析则是
    $.each(jsondatas,function(i,n){
    alert(jsondatas[i].属性的值);根据索引访问
    })
      

  7.   

    好象不用那么写了!
    eval完全没必要用的吧.
    直接掉就OK了,怎么又来这问题了.
      

  8.   

    jQuery 转json 比较严格。
    你将单引号 换成 双引号
      

  9.   


    这个是没有问题的,能正常的解析出来!!
    问题是我返回的json格式的数据以字符的形式返回给前台,却不能正常的解析了,找了半天也没有找出问题根源!!
      

  10.   


    试了下,返回这个"{[{'name':'pub','number':'2','type':'A  ','status':'0'},{'name':'sub','number':'4','type':'A  ','status':'0'},{'name':'dpub','number':'16','type':'A  ','status':'0'}]}"
    ,结果抛出的问题还是一样的错误信息