栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java对象转jsonarray,并运用stream流各试例(jsonArray循环、分组、强转、某个字段集合值、集合用条件筛选对象)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java对象转jsonarray,并运用stream流各试例(jsonArray循环、分组、强转、某个字段集合值、集合用条件筛选对象)

这里写目录标题
  • 集合转json(一下都用 com.alibaba.fastjson包)
  • JSONArray对象循环
  • 获取集合某个字段的值,set接收
  • list集合根据字段分组
  • jsonArray分组
  • jsonArray根据字段值相等过滤出来,返回JSONArray
  • 集合筛选对象 如果有返回对象,没有返回null parallelStream(多线程,异步任务)

集合转json(一下都用 com.alibaba.fastjson包)

尽量以集合来获取数据方便后续计算

//jfinal 数据库查询
List users= BusReportCrowd.dao.template("user.find", kv).find();
//转json
JSonArray array = JSONArray.parseArray(JSON.toJSONString(users));
JSONArray对象循环
//转object对象 array为jsonArray
 Object o = array.stream().max(Comparator.comparing(item -> ((JSONObject) item).size())).get();
            for (Map.Entry entry : ((JSONObject) o).entrySet()) {
                //entry 为jsonObject 直接获取key value
            }
//另一种
for (Object object : array) {
                JSonObject temp = (JSONObject) object;
                for (Map.Entry entry : temp.entrySet()) {
                }
                }
获取集合某个字段的值,set接收
//转object对象 list集合
  Set sets = list.stream().map(item -> String.valueOf(item.getString("字段名"))).collect(Collectors.toSet());
  //另一种 array为jsonArray对象
  Set hourSet = array.stream().map(item -> ((JSONObject) item).getString("字段名")).collect(Collectors.toSet());
list集合根据字段分组
//集合根据name分组 key为名字,value为当前相同名字的集合
 Map> userItems= users.stream().collect(Collectors.groupingBy(item -> item.getName()));
 //遍历
        for (Map.Entry> userItem: userItems.entrySet()) {
            
        }
jsonArray分组
//集合根据字段名分组 key为值,value为当前相同key的集合
 Map> jsonListMap = array.stream().collect(Collectors.groupingBy(item -> ((JSONObject) item).getString("字段名")));
                        for (Map.Entry> entry : jsonListMap.entrySet()) {
                        }
jsonArray根据字段值相等过滤出来,返回JSonArray
//array为之前JSonArray 
JSonArray list = array.stream().filter(item -> ((JSONObject) item).getStr("name").equals(name)).collect(Collectors.toCollection(JSONArray::new));
集合筛选对象 如果有返回对象,没有返回null parallelStream(多线程,异步任务)
//获取集合id
List ids= users.parallelStream().map(User::getId).collect(Collectors.toList());
//集合筛选对象 如果有返回对象,没有返回null
User user= users.parallelStream().filter(o -> item.getString("name").equals(o.getName())).findAny().orElse(null);
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/644618.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号