概述
Python-Django项目中用到从前端存储列表数据到后端存储到数据库;后端将列表数据重新从数据库取出后,用json.dumps()处理后发给前端,JS将该列表数据还原后使用。
- PS-1:试了很多方法,JS调用列表数据总是失败;
- PS-2:部分数据中存在中文,其key, value皆需使用双引号包裹;
前端给后端JS字符串数据
var lst_table_meter_para = "";
data_rows = document.getElementById("table_meter_para").rows;
for( var n_row = 1; n_row < data_rows.length; n_row++ )
{
lst_table_meter_para = lst_table_meter_para +
"{\"meter_no\":"+data_rows[n_row].cells[0].innerHTML
+ ",\"meter_name\":\"" + data_rows[n_row].cells[1].innerHTML
+ "\",\"meter_type\":" + data_rows[n_row].cells[2].innerHTML
+ ",\"meter_address\":\"" + data_rows[n_row].cells[3].innerHTML
+ "\",\"inner_no\":" + data_rows[n_row].cells[3].innerHTML
+ ",\"process_flag\":" + data_rows[n_row].cells[3].innerHTML
+ ",\"check_flag\":" + data_rows[n_row].cells[3].innerHTML
+ ",\"voltage_level\":" + data_rows[n_row].cells[3].innerHTML
+ "}###";
}
前端处理后端发来的字符串为Json对象
var lst_meter_param = request_details.meter_param.split('###');
for( var n = 0; n < lst_meter_param.length - 1; n++ )
{
var meter_param_i = lst_meter_param[n];
console.log( JSON.parse( meter_param_i ) );
}