欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

dojo怎樣將json轉換為一棵樹

劉柏宏1年前8瀏覽0評論

Dojo是一個JavaScript工具包,提供了許多實用的功能。其中之一是將JSON轉換為一棵樹的功能。在Dojo中,使用dojo/data/ObjectStore和dojo/store/Memory組合,將JSON數據處理成樹狀結構。

下面是將JSON數據轉換為一棵樹的代碼片段:

require(["dojo/data/ObjectStore", "dojo/store/Memory"], function(ObjectStore, Memory){
var data = [
{ id: 1, name: "中國", parentId: 0 },
{ id: 2, name: "浙江省", parentId: 1 },
{ id: 3, name: "杭州市", parentId: 2 },
{ id: 4, name: "上城區", parentId: 3 },
{ id: 5, name: "下城區", parentId: 3 },
{ id: 6, name: "江蘇省", parentId: 1 },
{ id: 7, name: "南京市", parentId: 6 },
{ id: 8, name: "鼓樓區", parentId: 7 },
{ id: 9, name: "玄武區", parentId: 7 },
];
var memoryStore = new Memory({ data: data });
var objectStore = new ObjectStore({ objectStore: memoryStore });
// 將 parentId 為 0 的節點作為根節點
var rootId = 0;
var rootNode = { id: rootId, name: "根節點", children: [] };
// 獲取 parentId 為 rootId 的節點
objectStore.query({ parentId: rootId }).forEach(function(item){
var node = { id: item.id, name: item.name, children: [] };
// 獲取當前節點的子節點
objectStore.query({ parentId: item.id }).forEach(function(child){
node.children.push({ id: child.id, name: child.name });
});
// 將子節點添加到當前節點中
rootNode.children.push(node);
});
console.log(rootNode);
});

以上代碼中,首先使用了Dojo中的dojo/data/ObjectStore和dojo/store/Memory組合創建了一個數據存儲區,在初始化時,將JSON數據傳入Memory中。

然后,創建了一個根節點,根節點的parentId設為0,接著使用objectStore.query函數獲取parentId為0的節點,遍歷這些節點,并將它們的子節點逐一獲取,添加到根節點的children數組中。

最后,得到的rootNode就是一棵樹。