描述的不清楚啊 吧你的json贴出来

解决方案 »

  1.   


    类似这样的var treeData=[
       {"name":"剑侠世界",
        "columns":[
               {
        "name":"新闻中心",
    "columns":[
      {
       "name":"新闻",
       "parentId":2
       },
      {
       "name":"公告",
       "parentId":2  
      }
    ],
    "parentId":1
       },
               {
        "name":"玩家文选",
    "columns":[
      {"name":"门派攻略","parentId":2},
      {"name":"玩家心情","parentId":2}
    ],
    "parentId":1
       },
               {
        "name":"游戏资料",
    "columns":[
      {"name":"游戏资料0","parentId":2},
      {"name":"游戏资料1","parentId":2}
    ],
    "parentId":1
       }          
              ],
        "parentId":0
       },
       {"name":"剑侠世界1",
        "columns":[
               {
        "name":"新闻中心1",
    "columns":[
      {"name":"新闻1"},
      {"name":"公告1"}
    ]
       },
               {
        "name":"玩家文选1",
    "columns":[
      {"name":"门派攻略1"},
      {"name":"玩家心情1"}
    ]
       },
               {
        "name":"游戏资料1",
    "columns":[
      {"name":"游戏资料01"},
      {"name":"游戏资料01"}
    ]
       }          
              ],
    "parentId":0
       }   
    ];
      

  2.   

    主要的问题是 怎么去遍历多层的json
      

  3.   

    你这种数据,就算固定  我也想不到怎么搞.是table中的td套table.
      

  4.   

                给楼主提供思路,供参考,需要写一个递归
                使用Newtonsoft.Json.dll,网上自己找吧
                JArray json = JArray.Parse(jsonStr);
                foreach (var item in json)
                {
                    JObject j = JObject.Parse(json[1].ToString());
                    j["name"].ToString();
                    j["columns"].ToString();
                    JArray json2=  JArray.Parse(j["columns"].ToString());
                    foreach (var item2 in json)
                    {
                        //递归 
                        //j["columns"]==null 说明没有子节点了
                    }
                    j["parentId"].ToString();
                }
               如果json只有一层的话,用(DataTable)JsonConvert.DeserializeObject<DataTable>(jsonStr) 就搞定了,多层你就要自己写了
                这里name,columns,parentId都取出来了,转Table 、xml就随便了
      

  5.   

    能不能这样  遍历的时候设置一个变量记录层数和元素个数  通过层数和元素个数来设置rowspan和colspan  应该可以拼出个table  但感觉吃力不讨好呢。。
      

  6.   

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title></title>
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js">
            </script>
       <script type="text/javascript">
    var date=[{"name":"剑侠世界","columns":[{"name":"新闻中心","columns":[{"name":"新闻","parentId":2},{"name":"公告","parentId":2}],"parentId":1},{"name":"玩家文选","columns":[{"name":"门派攻略","parentId":2},{"name":"玩家心情","parentId":2}],"parentId":1},{"name":"游戏资料","columns":[{"name":"游戏资料0","parentId":2},{"name":"游戏资料1","parentId":2}],"parentId":1}],"parentId":0},{"name":"剑侠世界1","columns":[{"name":"新闻中心1","columns":[{"name":"新闻1"},{"name":"公告1"}]},{"name":"玩家文选1","columns":[{"name":"门派攻略1"},{"name":"玩家心情1"}]},{"name":"游戏资料1","columns":[{"name":"游戏资料01"},{"name":"游戏资料01"}]}],"parentId":0}];
    $(function(){
    digui(date);})
    function digui(json){
    $(json).each(function(k,v){
    $("<tr><td>"+v.name+"</td><td>"+v.parentId+"</td></tr>").appendTo("#table");
    if(v.columns!=null)
    digui(v.columns);});
    }
    </script>
    <style>
    table tr td {border: 1px solid #ececec;}
    </style>
    </head>
    <body>
    <table id="table" style="border: 1px solid #ececec;"><tr><th>name</th><th>parentId</th></tr></table></body>
    </html>