現在問題是寫好了一個樹形的json文件,至於顯示是另外的js讀取這個json文件後顯示的,而我想要的是在顯示的時候有一個功能,比如點擊某個子節點,那麼這個子節點將變成根節點,整棵樹根據這個節點變成根節點後的位置重新生成,再進行顯示,樹的修改的算法我大概想好了,但是json不會操作,如何進行這個讀取還有修改後重新寫入呢?樹的結構部分如下:
var flare_data = {
"name": "flare",
"children": [
{
"name": "analytics",
"children": [
{
"name": "cluster",
"children": [
{"name": "AgglomerativeCluster", "size": 3938},
{"name": "CommunityStructure", "size": 3812},
{"name": "HierarchicalCluster", "size": 6714},
{"name": "MergeEdge", "size": 743}
]
},
{
"name": "graph",
"children": [
{"name": "BetweennessCentrality", "size": 3534},
{"name": "LinkDistance", "size": 5731},
{"name": "MaxFlowMinCut", "size": 7840},
{"name": "ShortestPaths", "size": 5914},
{"name": "SpanningTree", "size": 3416}
]
這樣比如某個children將變成root的時候,怎麼進行這個json文件的調整,求各位大大指導一下!
請采納!
如果你學過數據結構,就知道樹這種結構。
有了樹結構,你可以指示parentNode
、ChildNodes
,來控制節點的父子關系。
那麼你選中一個節點為新的根節點,只需要按你的需求調整其它子樹的parentNode和childNodes即可。
有了這個基礎,來看你的問題,你需要的只是將json文本反序列化為一棵json樹,或者一個json對象。
如果你在客戶端做,jQuery提供了這種方法:$.parseJSON(json)
;
如果你在服務端做,java、php、.Net都提供了反序列化json為json對象的包,比如java可用jackson
。