色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

dojo怎樣將json轉(zhuǎn)換為一棵樹(shù)

Dojo是一個(gè)JavaScript工具包,提供了許多實(shí)用的功能。其中之一是將JSON轉(zhuǎn)換為一棵樹(shù)的功能。在Dojo中,使用dojo/data/ObjectStore和dojo/store/Memory組合,將JSON數(shù)據(jù)處理成樹(shù)狀結(jié)構(gòu)。

下面是將JSON數(shù)據(jù)轉(zhuǎn)換為一棵樹(shù)的代碼片段:

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

以上代碼中,首先使用了Dojo中的dojo/data/ObjectStore和dojo/store/Memory組合創(chuàng)建了一個(gè)數(shù)據(jù)存儲(chǔ)區(qū),在初始化時(shí),將JSON數(shù)據(jù)傳入Memory中。

然后,創(chuàng)建了一個(gè)根節(jié)點(diǎn),根節(jié)點(diǎn)的parentId設(shè)為0,接著使用objectStore.query函數(shù)獲取parentId為0的節(jié)點(diǎn),遍歷這些節(jié)點(diǎn),并將它們的子節(jié)點(diǎn)逐一獲取,添加到根節(jié)點(diǎn)的children數(shù)組中。

最后,得到的rootNode就是一棵樹(shù)。