将 tree 类型的json数据转化为table 描述的不清楚啊 吧你的json贴出来 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 类似这样的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 } ]; 主要的问题是 怎么去遍历多层的json 你这种数据,就算固定 我也想不到怎么搞.是table中的td套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就随便了 能不能这样 遍历的时候设置一个变量记录层数和元素个数 通过层数和元素个数来设置rowspan和colspan 应该可以拼出个table 但感觉吃力不讨好呢。。 <!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> js 提示 missing ] after element list 帮忙给调试一下js,另求教调试工具和方法,书籍! 在一个select的选中某值时,触发另外一个select为可操作状态 一个关于showModalDialog的难题,高手们帮帮我! 如何弹出属性窗口 一个简单问题 JS 解析xml(奇怪) http://asp2.6to23.com/eblab/mybbs/bbslist.asp 谁能破此密码???? 求一正则匹配 谁能将此颜色代码再加个灰色? 用jQuery解析xml是不是亏了 innerHTML 到底都干了些什么操作。
类似这样的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
}
];
使用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就随便了
<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>