日期:2014-05-16  浏览次数:20706 次

怎么把可编辑的dataGird中的数据序列化为json发给后台
最近在使用dataGird时,需要在表格中插入<input> ,点击按钮时,需要把datagird中的一些数据发给后台,下面是我以前的方法:


         var all = $("#t1").datagrid("getData");
 var sum=0;

var json="[";
$.each(all.rows, function(i, p) {
   //var num=$('#t1 input[id='+p.product_id+']').val();
   var num=$("#"+p.product_id).val();
   var money=p.product_money;
   var allMoney=(num-0)*(money-0);  //总金额
   sum+=allMoney;
               json+="{";
               json+=" \"product_id\":\""+p.product_id+" \",\"prolist_num\":\""+ num+"\",\"product_money\":\""+ money+"\",\"allMoney\":\""+ allMoney+"\"";// 
                json+="},"; 

});  
 json=json.substring(0,json.length-1);
  if(json.length==1)
   json+="["; 
   json+="]"; 


我通过var all = $("#t1").datagrid("getData");把数据表格中的值都取出来,然后用for循环将他序列化为json,把json传到后台通过解析json去获取表格中的值,我现在想知道有没有更好的方法。

还有就是我想知道在javascript中怎么把一个字符串或list序列化为json

------解决方案--------------------
有JSON对象啊。。如果是IE8-浏览器需要导入json2.js这个对象以支持JSON,然后就可以JSON.stringify将json对象转为对应的字符串了

<script src="http://www.coding123.net/rardownload/20130106/20130106170832648.js"></script>
<script>
    var d = [{ a: 1 }, { b: 2 }, { c: 3}];
    d = JSON.stringify(d);
    alert(d)
</script>