获取表格数据转换为JSON字符串

 

核心代码JavaScript代码:

方法一

function sc () {
    			var myTable=document.getElementById("myTable");
    		    //获取表格中的所有行
    		    var rows=myTable.rows;
    		    //获取第一行的所有列
    		    var title=rows[0].cells;
    		    var json="";
    		    for (var i=1;i<rows.length;i++) {
    		    	var cells=rows[i].cells;//获取第i行中的所有列
    			    json+="{";
    			    //拼裝JSON字符串
    			    for (var j=0;j<cells.length;j++) {
    			    	json+="\""+title[j].innerHTML+"\":\""+cells[j].innerHTML+"\","
    			    }
    			    //运用substring()方法获取所需要的子串,去掉不需要的逗号
    			    json=json.substring(0,json.length-1)+"},"
    		    }
    		    json="["+json.substring(0,json.length-1)+"]";
    		    alert(json);
    		}

方法二(第一步获取表格数据并储存在js数组中,第二步把js对象数组转化为JSON字符串)

function sc () {
    		   var trs = document.getElementsByTagName("tr"); //获取表格中的所有行
				var sum = [];//新建一个数组
				for(var i = 1; i < trs.length; i++) {
					var tds=trs[i].cells;//获取第i行的所有列
					var stu={};//新建一个对象
					//把属性和属性的值添加到对象中
					stu.编号=tds[0].innerHTML;
					stu.书名=tds[1].innerHTML;
					stu.单价=tds[2].innerHTML;					
					sum.push(stu);//使用push方法把对象添加到数组中
				}
				document.write(JSON.stringify(sum));//把js对象数组转换成JSON字符串并输出
    		}

  

  HTML代码

		<table id="myTable" class="cart_table">
    		<tr class="cart_title">
    			<td>编号</td>
    			<td>书名</td>
    			<td>单价</td>
    		</tr>
    		<tr>
    			<td>1</td>
    			<td>C程序设计语言</td>
    			<td>50</td>
    		</tr>
    		<tr>
    			<td>2</td>
    			<td>并行程序设计</td>
    			<td>80</td>
    		</tr>
    		<tr>
    			<td>3</td>
    			<td>C#设计模式</td>
    			<td>100</td>
    		</tr>   		
    	</table>
    	<input type="button" onclick="sc()" value="获取表格数据生成JSON" />

 CSS样式

         .cart_table {
				text-align: center;				
				border-collapse: collapse;
			}
			.cart_title {
				background-color: #999999;
			}
			td {
				border: 1px solid;
			}

  

 得到JSON数据如下

[{"编号":"1","书名":"C程序设计语言","单价":"50"},{"编号":"2","书名":"并行程序设计","单价":"80"},{"编号":"3","书名":"C#设计模式","单价":"100"}]

 

posted @ 2019-12-28 20:45  duyadong  阅读(1513)  评论(0编辑  收藏  举报