目前我还没有找到可以直接在后端映射层级json的方法,所以我是在前端写了个将层级json转化为单层的方法。
function convertJsonExt(jsons, jsonRet) {
for (k in jsons) {
var key = k;
switch (jsons[key].constructor.name) {
case "Object":
for (j in jsons[key]) {
jsonRet[k + '.' + j] = jsons[key][j];
}
break;
case "Array":
for (i in jsons[key]) {
for (l in jsons[key][i]) {
jsonRet[k + '[' + i + '].' + l] = jsons[key][i][l];
}
}
break;
default:
jsonRet[key] = jsons[key];
break
}
}
}
然后用的时候直接写convertJsonExt(jsons,jsonsAll)就可以,jsons是原来的数据,jsonsAll是转换之后的单层json。
var jsons = {
projInfo:{projId:projId,
projName:projName,
projType:projType,
deptId:deptId,
projStartTime:projStartTime,
projPlanEndTime:projPlanEndTime,
projManager:projManager,
projBackground:projBackground,
projPlan:projPlan},
projMemberList:projMemberList,
projObjective:projObjective
};