亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

JAVA如何轉換樹結構數據代碼實例

瀏覽:158日期:2022-09-03 16:38:15

在實戰開發中經常有需要處理樹形菜單、樹形目錄等等等業務需求。而對于這種產品,在設計數據庫時也建議使用id<----->parentId的結構來做。但是最終前端顯示多用hightChart或者Echart插件來實現。所以在給前端數據時,最好的做法就是把數據庫結構話的數據處理成treeJson格式。

第一步:引入fastjson

<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>${fastjson.version}</version></dependency>

第二步:用到了工具內的JSONPath

JSONPath使用教程

/** * 樹轉換 * * @param obj 需要轉換的對象 * @param parentCodeFieldName 父標識字段名 * @param parentCode 父標識值 * @param currentCodeFieldName 當前標識字段名 * @param childrenFiledName 子樹的字段名 * @param c 需要轉換的Class類型 * @param <T> 泛型 * @return 返回List<T> */ public static <T> List<T> tree(Object obj, String parentCodeFieldName, String parentCode, String currentCodeFieldName, String childrenFiledName, Class<T> c) { long t1 = System.currentTimeMillis(); String jsonStr = JSON.toJSONString(obj); log.debug('樹轉換開始 >>>>>>>>>>>>>>>> {}', JSON.toJSONString(obj)); //獲取第一層級的數據 JSONArray jsonArray = (JSONArray) JSONPath.read(jsonStr, '$[' + parentCodeFieldName + '=' + parentCode + ']'); if (CollectionUtils.isEmpty(jsonArray)) { //為空的話直接返回空集合 return Lists.newArrayList(); } for (int i = 0; i < jsonArray.size(); i++) { JSONObject jsonObject = jsonArray.getJSONObject(i); String code = jsonObject.getString(currentCodeFieldName); treeChildren(jsonStr, jsonObject, parentCodeFieldName, code, currentCodeFieldName, childrenFiledName); } List<T> list = JSONArray.parseArray(jsonArray.toString(), c); log.debug('樹轉換結束, 轉換時間: {} ms . >>>>>>>>>>>>>>>> {}', (System.currentTimeMillis() - t1), JSON.toJSONString(list)); return list; } private static void treeChildren(String jsonStr, JSONObject currentJsonObj, String parentCodeFieldName, String parentCode, String currentCodeFieldName, String childrenFiledName) { JSONArray jsonArray = (JSONArray) JSONPath.read(jsonStr, '$[' + parentCodeFieldName + '=' + parentCode + ']'); if (CollectionUtils.isEmpty(jsonArray)) { return; } currentJsonObj.put(childrenFiledName, jsonArray); for (int i = 0; i < jsonArray.size(); i++) { JSONObject jsonObject = jsonArray.getJSONObject(i); String code = jsonObject.getString(currentCodeFieldName); treeChildren(jsonStr, jsonObject, parentCodeFieldName, code, currentCodeFieldName, childrenFiledName); } }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
主站蜘蛛池模板: 综合免费视频 | 免费观看拍拍视频在线观看 | 成年男女免费视频网站 | a级黄毛片 | 亚洲4区| 成 人 黄 色视频免费播放 | 久久综合九九亚洲一区 | 成人精品一区二区户外勾搭野战 | 欧美一级特黄特黄做受 | 亚洲免费一级片 | 国产三级精品最新在线 | 免费观看欧美成人h | 国产婷婷色一区二区三区深爱网 | 成人精品视频一区二区在线 | 午夜国产片| 亚洲精品tv久久久久久久久 | 日韩黄色成人 | 美女免费观看一区二区三区 | 国产日韩高清一区二区三区 | 在线亚洲精品自拍 | 亚洲另类视频在线观看 | 国产精品入口麻豆免费看 | 美女免费精品高清毛片在线视 | 正在播放国产大学生情侣 | 成人做爰免费网站 | 成人中文字幕一区二区三区 | 日日cao| 午夜激情福利视频 | 中文字幕一区二区区免 | 国自产拍在线视频天天更新 | 黄色动态视频 | 国产日韩精品一区在线观看播放 | 偷拍小视频99在线 | 五月婷婷六月丁香 | 在线观看三级视频 | 国产精品视频免费观看 | 极品精品国产超清自在线观看 | 精品在线一区二区三区 | 欧美国产亚洲精品高清不卡 | 91麻豆视频在线观看 | 欧美人七十二式性视频教程一 |