要用到的包:
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
1、前端部分爲提交按鈕添加事件:
//提交保存
$("#submitSave").click(function(){
var arr = new Array();
//序列化每個表單
$("form").each(function(){
var obj = $(this).serializeJson();
arr.push(obj);
});
//轉json
var arrJson = JSON.stringify(arr);
var data = {
allParams : arrJson
};
//if判斷是自定義校驗表單的數據
if(checkFormInput(arrJson)){
$.ajax({
type: "POST",
data: data,
url: ctx + "/portal/workinglog/workinglogAction!ajaxAdd.action",
dataType: "JSON",
success:function(data){
if(data.data.result=="ZSUCCESS"){
showMsg("","提交成功",1);
location.href = ctx + "/jsp/wap/workinglog/submit_list.jsp";
}else{
showMsg("", "提交失敗", 1);
}
}
});
}
});
//自定義序列化
(function($){
$.fn.serializeJson=function(){
var serializeObj={};
$(this.serializeArray()).each(function(){
serializeObj[this.name]=this.value;
});
return serializeObj;
};
})(jQuery);
//上面所說的表單數據檢驗
function checkFormInput(arrJson){
var obj = JSON.parse(arrJson);
if(obj==""){
這個是封裝的顯示消息的方法,不必理會
showMsg("","請添加日誌",1);
return false;
}
for(var i=0; i<obj.length; i++){
if(obj[i].ADDCONDT==null || obj[i].ADDCONDT.trim()==""){
showMsg("","請輸入工作內容",1);
return false;
}
if(obj[i].BUSITYPE!="10"){
var s1 = "2016/03/22 " + obj[i].STARTIME +":00";
var s2 = "2016/03/22 " + obj[i].ENDTTIME +":00";
var d1 = new Date(s1);
var d2 = new Date(s2);
if(d1.getTime() >= d2.getTime()){
showMsg("","開始時間不能大於結束時間",1);
return false;
}
}
}
return true;
}
2、後端反序列化
if(str!=null && str!=""){
JSONArray jsonArray = JSONArray.fromObject(str);
for(int i=0; i<jsonArray.size(); i++){
JSONObject jobj = jsonArray.getJSONObject(i);
if(!jobj.isEmpty()){
<span style="color:#FF6666;"> //TODO處理每一個json對象,以下是demo</span>
String receivers[]=jsonArray.getJSONObject(i).getString("contact").split(",");
String amount=jsonArray.getJSONObject(i).getString("amount");
String remark=jsonArray.getJSONObject(i).getString("remark");
String copytos="";copytos=jsonArray.getJSONObject(i).getString("fakecontact");
/*
具體業務
*/
}
}
}