日期:2014-05-17  浏览次数:20439 次

求助:json字符串
页面里用了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);

------解决方案--------------------
options.columns = eval('('+dd.columns+')');

------解决方案--------------------
由于json是以”{}”的方式来开始以及结束的,在JS中,它会被当成一个语句块来处理,所以必须强制性的将它转换成一种表达式。http://www.cnblogs.com/myjavawork/archive/2011/03/10/1979279.html
------解决方案--------------------
用 json.net 处理
------解决方案--------------------
var a ='[[{ "field": "设备", "title": "设备", "align": "center", "width": 80 }]]'

---------------------------
注意单引号和双引号的使用,不可用错
------解决方案--------------------
eval('('+dd.columns+')');
------解决方案--------------------
探讨
var dd = { "columns": "" + a };
options.columns = eval(dd.columns);

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