重点:JAVA之JSON字符串转换LIST实体类
Listlist = new ArrayList();
list = JSONObject.parseArray(strResult, ExamListInVO.class);
下面展示实例
1、静态页面
个人简历:
起止年月
在何处任何职(工种)
2、js封装参数并提交
//获取工作经历部分的列表数据
function getContractResumeData(){
var contractResumeArray=[];
var tr = $("#crList tr");
tr.each(function(index){
var isCrTableTr = $(this).attr("data-type");
if(isCrTableTr !== "cr"){
return ;
}
var tempCr = {};
tempCr["startEndDate"]=$(this).find("input[name='startEndDate']").val();
tempCr["workContent"]=$(this).find("input[name='workContent']").val();
contractResumeArray.push(tempCr);
});
return contractResumeArray;
}
//提交表单
function saveSubmit() {
var signupFormData=$('#signupForm').serialize();
var crStr=JSON.stringify(getContractResumeData());
$.ajax({
cache : true,
type : "POST",
url : "/contract/contractInfo/update",
data : signupFormData+"&crStr="+crStr,// 你的formid
async : false,
error : function(request) {
parent.layer.alert("Connection error");
},
success : function(data) {
if (data.code == 0) {
parent.layer.msg("操作成功");
parent.reLoad();
var index = parent.layer.getFrameIndex(window.name); // 获取窗口索引
parent.layer.close(index);
} else {
parent.layer.alert(data.msg)
}
}
});
}
3、java后端接收json字符串并转为List
/**
* 保存
*/
@ResponseBody
@PostMapping("/save")
@RequiresPermissions("contract:contractInfo:add")
public R save( ContractPartyDO contractParty,String crStr){
String contractId=UUID.randomUUID().toString().replaceAll("-","");
contractParty.setContractId(contractId);
int res2=contractPartyService.save(contractParty);
//保存乙方工作经历
ListcrList = new ArrayList();
crList=JSONObject.parseArray(crStr, ContractResumeDO.class);
int count=0;
ContractPartyDO cpb=contractPartyService.getByContractId(contractId);
for (ContractResumeDO cr : crList) {
//如果获取到该行工作经历为空,也要保存,留出空白行方便用户以后的编辑。
cr.setPartyBId(cpb.getId());
count+=contractResumeService.save(cr);
}
if(res1>0 && count==crList.size()){
return R.ok();
}
return R.error();
}