现在问题是写好了一个树形的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
。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。