页面里用了easyui的datagrid,大家帮忙看一下下面代码,options.columns = eval(dd.columns);是正常的,
最下面现在已经注释掉的代码哪里错了?(字符串a是后台返回的,我想让后台返回包括columns:打头的整个字符串。)
    var a ="[[{ field: '设备', title: '设备', align: 'center', width: 80 },
 { field: '数量', title: '数量', align: 'center', width: 40 }]]";
    var  dd = { "columns": "" + a };
    options.columns = eval(dd.columns);    //var ee = eval('"columns": ""' + a);
    //options.columns = eval(ee.columns);

解决方案 »

  1.   

    options.columns = eval('('+dd.columns+')');
      

  2.   

    由于json是以”{}”的方式来开始以及结束的,在JS中,它会被当成一个语句块来处理,所以必须强制性的将它转换成一种表达式。http://www.cnblogs.com/myjavawork/archive/2011/03/10/1979279.html
      

  3.   

    var a ='[[{ "field": "设备", "title": "设备", "align": "center", "width": 80 }]]'---------------------------
    注意单引号和双引号的使用,不可用错
      

  4.   

      var dd = { "columns": "" + a };
      options.columns = eval(dd.columns);  //var ee = eval('"columns": ""' + a);
      //options.columns = eval(ee.columns);
    或者请问注释掉的这两句应该怎么改才能替代上面两句的代码
      

  5.   

    试试这个:
    var ee = eval('{"columns": ""' + a+'}');