biggod_
biggod_
采纳率100%
2015-05-09 07:19

json数据如何读取完进行修改再写回源文件

已采纳

现在问题是写好了一个树形的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文件的调整,求各位大大指导一下!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • gsky1986 foreach_break 6年前

    请采纳!

    如果你学过数据结构,就知道树这种结构。

    有了树结构,你可以指示parentNodeChildNodes,来控制节点的父子关系。

    那么你选中一个节点为新的根节点,只需要按你的需求调整其它子树的parentNode和childNodes即可。

    有了这个基础,来看你的问题,你需要的只是将json文本反序列化为一棵json树,或者一个json对象。

    如果你在客户端做,jQuery提供了这种方法:$.parseJSON(json);
    如果你在服务端做,java、php、.Net都提供了反序列化json为json对象的包,比如java可用jackson

    点赞 评论 复制链接分享

相关推荐