数据前:想得到后的效果
[{
user_id:1
user_pen_name:天蚕土豆
user_coin:100;
{
bookid:1
bookname:斗破苍穹
//剩下字段内容
}
{
//剩下字段内容
}
}]
[{
user_id:3
user_pen_name:晴日蓝
user_coin:100;
{
bookid:3
bookname:极品富二代
//剩下字段内容
}
}]
下面是我的代码
public String collect(@RequestParam(value="userId",required=false)Long userid,
@RequestParam(value="bookType",required=false)Long booktype){
JSONObject json=new JSONObject();
Map<String, Object> condition=new HashMap<String, Object>();
try {
if(userid !=null){
condition.put("userid", userid);
}
if(booktype!=null){
condition.put("booktype", booktype);
}
List<Map<String, Object>> map=bcsrvice.list(condition);//就是这里得到的数据 有人说可以分组 妈蛋不会只能找你们了
if(map.size() !=0){
json.put("collect", map);
json.put("status", 1000);
json.put("message", "");
}else{
json.put("exec", "未查到信息,系统异常!!!!!");
}
} catch (Exception e) {
e.printStackTrace();
}
return json.toJSONString();
}
/* 定义实体 AUTHOR和BOOK,其中AUTHOR里面有一个LIST<BOOK> 然后SQL查BOOK,ORDER BY AUTHOR,BOOK_NAME返回一个LIST<BOOK> 定义变量 */ List<Author> authorList = new ArrayList<xxx> Author author = new Author(); for(Book b : bookList) { if (!b.authorName.equals(author.name)) { author = new Author(); } author.bookList.add(b) }
由于后台查的数据都是根据AUTHOR_NAME, BOOK_NAME排序的,所以不用担心会出现两个AUTHOR了,顺序处理就可以了
@之奇一昂: 表示没懂,详细点
@之奇一昂: 银行给一堆钱,是按面值 1, 5, 10 排好序的,你是不是一张一张拿,当看到5的时候,就说明剩下的钱里面一张1元的也没有了,之前拿出来的全是一元的,分组,再建一个新组存5元的,当发现取出10元的来的时候,说明5元的取完了,再建一个组。。依次。。遍历一遍就分好组了
@之奇一昂: 这书是按作者名排序的,当我一本一本的取,发现下一本作者不一样了,就说明这个作者的书就拿完了,下一本就是下一个作者的了,然后再拿,再到发现作者变了,再记录作者再拿。。
@之奇一昂: 能帮我直接改代码吗?说思路我也不会
@活出你的霸气: 不能,思路和伪代码都已经给你了,你还不能写出来吗?
你需要linq.
怎么用,你说嘛
关键时刻还是靠了自己