foreach数据,需要导出数据,理论上需要使用后台查询,但后台和前台百度API提供的经纬度算法差距过大,所有需要把前台这些数据传到后台去,又不想每个name都写一个对象,就想到了组装json。
$("#btn_export").click(function () {
if ($("#busRealTimeInfo .location").length > 0) {
$.ajax({
type: "POST",
url: G.context_root + "/vehicle/vehBusRealTime/download/realtime",
data: {
data: serializeToJSON($("#busRealTimeInfo").serializeArray(), 12)
},
success: function (res) {
showDownLoadBox();
}
});
}
});
/**
*
* @param obj serializeArray()序列化数据
* @param num 每行name的个数
* @example serializeToJSON($("#busRealTimeInfo").serializeArray(), 9)
* @returns {string}
*/
function serializeToJSON(obj, num) {
var jsonStr = "[{";
$(obj).each(function (index, item) {
jsonStr += "'" + item.name + "':'" + item.value + "'";
if (index % num == (num - 1)) {
if ((index + 1) == obj.length)
jsonStr += "}]";
else
jsonStr += "},{";
} else {
jsonStr += ",";
}
});
return JSON.stringify(jsonStr);
}
后台解析json根据前台提供的name名称解析就可以了。