日期:2014-05-16  浏览次数:20403 次

将 tree 类型的json数据转化为table
 怎么将 一个tree类型的 json数据转化为 table
------解决方案--------------------
            给楼主提供思路,供参考,需要写一个递归
            使用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就随便了
------解决方案--------------------
<!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);

});


}