现在,我遇到了一个难题,想请各位高手来帮忙解答。
以下是我的表格截图,
我需要做的是把表格里的数据全部转变为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,请高手指教。
放到一个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就是整个列表的数据了。
你可以看看JSON的序列化和反序列化;我之前用到了,可能还要涉及到字符串的转换。JSON的序列化和反序列化http://www.cnblogs.com/zhaozhan/archive/2011/01/09/1931340.html