如何把表格里的数据转变成json格式传送到后台数据库?

现在,我遇到了一个难题,想请各位高手来帮忙解答。

以下是我的表格截图,

图片说明

我需要做的是把表格里的数据全部转变为json格式,用ajax传送到后台数据库。

json格式:
var riditemsList = [{"Code":"08","secCode":"10","seName":"化妆品","itemNo":"00001","itemName":"曼秀雷敦润唇膏"},{"Code":"08","seCode":"10","seName":"化妆品","itemNo":"00002","itemName":"曼秀雷敦香皂"},{"Code":"08","seCode":"10","seName":"化妆品","itemNo":"00003","itemName":"曼秀雷敦指甲油"},{"Code":"08","seCode":"10","secName":"化妆品","itemNo":"00004","itemName":"曼秀雷敦润肤乳"}]

我原来用的是js生成一个item的对象,然后,new一个数组,把表格的每一行遍历,然后遍历每一行中的子元素,把每一个子元素赋值给每一个item对象的属性Code, seCode, seName, itemNo, itemName。可是,不知道如何写好这段代码。以下是我的草稿,似乎还是没实现我的想法,请高手帮忙。

function saveTable(){
debugger;

var saveData={};//新建对象,用来存储所有数据
var subSaveDataArr={};//存储每一行数据
var tableData={};
var dcCode, sectionCode, sectionName, itemNo, itemName;

$("#div1 table tr").each(function(trindex,tritem){//遍历每一行
tableData[trindex]=new Array();
$(tritem).find("td").each(function(tdindex,tditem){
//如果第一行的input值是Yes,就把这一行的每一列的有值的单元格存入
tableData[trindex][tdindex]=$(tditem).text();//遍历每一个数据,并存入

       subSaveDataArr[trindex]=tableData[trindex];//将每一行的数据存入

});

});
for(var key in subSaveDataArr)
{

  saveData[key]=subSaveDataArr[key]; ///将每一行存入对象

}

这样,实现的json格式是:

{['','','']},里面缺少对应的name,请高手指教。

3个回答

放到一个list集合...再放到map里...用ObjectMapper mapper转成json字符串

问题就是在于你遍历每个td的时候,可以不用这么复杂:
首先,你将saveData直接定义为数组,存每一行的数据;其次,每一个tr的数据定义为{},存储每一个td的值得。你已经知道每个td的含义了,可以直接用switch分支赋值。将该td的值设置到tr的属性上。修改如下:

 function saveTable(){
    debugger;
    var saveData=[];//新建对象,用来存储所有数据

    var dcCode, sectionCode, sectionName, itemNo, itemName;
    $("#div1 table tr").each(function(trindex,tritem){//遍历每一行
        var tableData={};
        $(tritem).find("td").each(function(tdindex,tditem){
              //当天td的值,再根据tdindex设置属性
              var tdValue = $(tditem).text();
              if(tdIndex==0){//第0列是code
            tableData.dcCode = tdValue;
              }
              if(tdIndex==1){
             tableData.sectionCode = tdValue
              }
               if(tdIndex==2){
             tableData.sectionName = tdValue
              }
               if(tdIndex==3){
             tableData.itemNo = tdValue
              }
               if(tdIndex==4){
             tableData.itemName = tdValue
              }
        });
        saveData.push(tableData);//将每一行的数据存入
    });
}

这样出来的saveData就是整个列表的数据了。

wojiushiwo945you
毕小宝 var dcCode, sectionCode, sectionName, itemNo, itemName;定义不需要;可以根据每个tdindex的值,将该单元格赋值到每个tr对象的属性上。
3 年多之前 回复

你可以看看JSON的序列化和反序列化;我之前用到了,可能还要涉及到字符串的转换。JSON的序列化和反序列化http://www.cnblogs.com/zhaozhan/archive/2011/01/09/1931340.html

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐