重点:JAVA之JSON字符串转换LIST实体类
List<ExamListInVO> list = new ArrayList<ExamListInVO>();
list = JSONObject.parseArray(strResult, ExamListInVO.class);
下面展示实例
1、静态页面
<div class="form-group">
<label class="col-sm-3 control-label">个人简历:</label>
<div class="col-sm-8">
<table class="table table-bordered" id="crList">
<tr>
<td class="active">
<label class="control-label">起止年月</label>
</td>
<td class="active">
<label class="control-label">在何处任何职(工种)</label>
</td>
</tr>
<tr data-type="cr">
<td class="active">
<input id="startEndDate" name="startEndDate" class="form-control" type="text">
</td>
<td class="active">
<input id="workContent" name="workContent" class="form-control" type="text">
</td>
</tr>
<tr data-type="cr">
<td class="active">
<input id="startEndDate" name="startEndDate" class="form-control" type="text">
</td>
<td class="active">
<input id="workContent" name="workContent" class="form-control" type="text">
</td>
</tr>
<tr data-type="cr">
<td class="active">
<input id="startEndDate" name="startEndDate" class="form-control" type="text">
</td>
<td class="active">
<input id="workContent" name="workContent" class="form-control" type="text">
</td>
</tr>
</table>
</div>
</div>
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);
//保存乙方工作经历
List<ContractResumeDO> crList = new ArrayList<ContractResumeDO>();
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();
}