本文目錄一覽:
- 1、如何用java遞歸生成帶children的json串啊?數據集已經有了在下面。
- 2、java根據資料庫生成菜單(遞歸)
- 3、java如何給有層級關係的JSON字元串做遞歸處理
- 4、遞歸實現java無限極菜單
- 5、如何用java遞歸生成帶children的json串
如何用java遞歸生成帶children的json串啊?數據集已經有了在下面。
不清楚你的業務需求。
1、數據存放在xml文件中,讀取xml文件
2、json格式,如果你的數據有規律可循,可以用代碼循環遍歷
3、如果數據來自資料庫,那麼使用sql,一般的資料庫都提供查詢「樹」的sql
java根據資料庫生成菜單(遞歸)
不需要遞歸用一個特殊字元的演算法來處理
比如
基本信息 1000
酒店管理 10001000
服務商管理 10002000
產品信息 2000
導遊管理 20001000
物品管理 20002000
java如何給有層級關係的JSON字元串做遞歸處理
先遞歸出一個 node對象,再將node對象轉換成json串。直接進行字元串的json操作不建議。
class Node{
private String id;
private String parentId;
private ListNode children;
public void addChildren(Node child){
getChildren().add(child);
}
public ListNode getChildren();
public String transformTojson(Node node ,StringBuffer jsonStr){
//遞歸
if(jsonStr ==null){
StringBuffer jsonStr=new ();
}
if(node.id!=null){
//拼接父節點json串
jsonStr.append(id:node.id,children:#children);
}
List childNodeList = node.getChildren();
StringBuffer childrenSB = new();
for( Node node :childNodeList){
childrenSB=transformTojson(node);
}
sonStr.replaceFirst(“#children”,childrenSB);
return jsonStr;
}
}
偽代碼大概這樣。
transformTojson方法可以不自己寫,直接使用第三方工具jar包的json轉化方法,比如gjson。
遞歸實現java無限極菜單
說下我個人的做法吧,不考慮任何效率問題,我是在查詢對象的時候,把對象用遞歸方法先封裝成一個集合。就是第一次查的時候,會拿到根,然後就可以開始使用遞歸去把子類提出來,直到沒有兒子。最後只需要把這個集合直接JSONArray 轉成json字元串。丟到前台就行了。
如何用java遞歸生成帶children的json串
這個問題有點沒意義,因為java已經有相應的jar了,不論是阿里的fastjson,還是gson,又或者是jackson,都是已經很成熟的jar了。如果非要自己去寫的話,就需要用到反射了。簡單來說,就是獲取對象的所有屬性。複雜說的話,要判斷對象的屬性,判斷屬性類型,判斷屬性值是否為null,判斷對象是否是有transient修飾,判斷字元串裡面是否有雙引號等等。然後通過StringBuffer或是StringBuilder去拼接字元串,來生成json串,至於是StringBuffer還是StringBuilder就看你的需要再決定了
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/304794.html