例如数据库查询出以下类型一条一条的数据
//章排序 //单元排序 //章名称 //单元名称
[ 1, 1, "第一章 集合与常用逻辑用语", "1.1 集合的概念"]
[ 1, 2, "第一章 集合与常用逻辑用语", "1.2 集合间的基本关系"]
[ 1, 3, "第一章 集合与常用逻辑用语", "1.3 集合的基本运算"]
[ 2, 1, "第二章 一元二次函数、方程和不等式", "2.1 等式性质与不等式性质"]
[ 2, 2, "第二章 一元二次函数、方程和不等式", "2.2 基本不等式"]
我想转化成
[{
"chapter" : "第一章 集合与常用逻辑用语",
"chapterOrder" : "1",
"value" : [{
"unit" : "1.1 集合的概念",
"unitOrder" : "1"
}
]
}, {
"chapter" : "第一章 集合与常用逻辑用语",
"chapterOrder" : "1",
"value" : [{
"unit" : "1.2 集合间的基本关系",
"unitOrder" : "2"
}
]
}, {
"chapter" : "第一章 集合与常用逻辑用语",
"chapterOrder" : "1",
"value" : [{
"unit" : "1.3 集合的基本运算",
"unitOrder" : "3"
}
]
}, {
"chapter" : "第二章 一元二次函数、方程和不等式",
"chapterOrder" : "2",
"value" : [{
"unit" : "2.1 等式性质与不等式性质",
"unitOrder" : "1"
}
]
}, {
"chapter" : "第二章 一元二次函数、方程和不等式",
"chapterOrder" : "2",
"value" : [{
"unit" : "2.2 基本不等式",
"unitOrder" : "2"
}
]
}
]
//java 代码参考
public Result getFilter(HashMap paramMap , AppLoginInfo appLoginInfo ){
String gradeId = paramMap.get("gradeId") + "" ;//年级
String pharseId = paramMap.get("pharseId") + "" ;//学段
String subjectId = paramMap.get("subjectId") + "" ;//学科
String editionId = paramMap.get("editionId") + "" ;//版本
List<Object[]> objects = chapterRepository.getFilter(strParse(gradeId),strParse(pharseId),strParse(subjectId),strParse(editionId)) ;
log.info("教材串:"+JSON.toJSONString(objects));
//下面的才是关键代码,前面都是从数据库查询数据
TextBookVo textBookVo ;
UnitVo unitVo ;
List<TextBookVo> textBookVos = new ArrayList<>() ;
for (Object[] obj : objects){
textBookVo = new TextBookVo() ;
unitVo = new UnitVo() ;
log.info("换行之后的教材串:"+JSON.toJSONString(obj)+"\n");
textBookVo.setChapterOrder(obj[0]+"");
textBookVo.setChapter(obj[2]+"");
unitVo.setUnit(obj[3]+"");
unitVo.setUnitOrder(obj[1]+"");
textBookVo.isExist(textBookVo,unitVo) ;
textBookVos.add(textBookVo) ;
}
log.info("返回手机端的教材串:"+JSON.toJSONString(textBookVos));
return ResultUtil.show(DealTextbookFilterResultEnum.SUCCESS,textBookVos);
}
@Data
public class TextBookVo implements Serializable{
private String chapterOrder ;
private String chapter ;
private List<UnitVo> value = null ;
/**
* [1,1,"第一章 集合与常用逻辑用语","1.1 集合的概念"]
* [1,2,"第一章 集合与常用逻辑用语","1.2 集合间的基本关系"]
* [1,3,"第一章 集合与常用逻辑用语","1.3 集合的基本运算"]
*
* 将上述类型的教材封装成
*
* [{
* "chapter" : "第一章 集合与常用逻辑用语",
* "chapterOrder" : "1",
* "value" : [{
* "unit" : "1.1 集合的概念",
* "unitOrder" : "1"
* }]
* }, {
* "chapter" : "第一章 集合与常用逻辑用语",
* "chapterOrder" : "1",
* "value" : [{
* "unit" : "1.2 集合间的基本关系",
* "unitOrder" : "2"
* }]
* }, {
* "chapter" : "第一章 集合与常用逻辑用语",
* "chapterOrder" : "1",
* "value" : [{
* "unit" : "1.3 集合的基本运算",
* "unitOrder" : "3"
* }]
* }]
* @param textBookVo
* @param unitVo
* @return
*/
public TextBookVo isExist(TextBookVo textBookVo ,UnitVo unitVo){
if (CollUtil.isEmpty(this.value)){
this.value = new ArrayList<>();
}
if (this.chapterOrder.equals(textBookVo.getChapterOrder())){
this.value.add(unitVo) ;
}
return this ;
}
}
喜欢可以测试验证下,功能已实现。此代码仅用作笔记,方便下次查阅。