如何判断json字符串的深度

fuzeqiang 2013-10-12 10:37:27
我从别人的接口里获取了一个树的json,我需要知道这个树的层次深度,求算法。
...全文
571 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
fuzeqiang 2013-10-12
  • 打赏
  • 举报
回复
靠别人果然不靠谱啊。还是自己解决了。结贴!
fuzeqiang 2013-10-12
  • 打赏
  • 举报
回复
引用 7 楼 bree06 的回复:
{"name":"tt","children":[{...},{...}]}这样最大几层2层还是3层?我想问的是数组算独立的一层吗?
数组当然算啦,如果我知道最大是几层我就不用上来问了,最大层次是不确定的。100层都有可能。
bree06 2013-10-12
  • 打赏
  • 举报
回复
{"name":"tt","children":[{...},{...}]}这样最大几层2层还是3层?我想问的是数组算独立的一层吗?
fuzeqiang 2013-10-12
  • 打赏
  • 举报
回复
引用 5 楼 abstruct 的回复:
直接format成json对象获取children然后递归撒
引用 4 楼 xietingyan 的回复:
可以用for( var index in array)去遍历json结构
首先树的深度都不知道,用for循环是不可能的。 我已经获取json对象写好递归了。但是树有很多分支,每个分支深度不同,我要取深度最大的。
安特矮油 2013-10-12
  • 打赏
  • 举报
回复
直接format成json对象获取children然后递归撒
xietingyan 2013-10-12
  • 打赏
  • 举报
回复
可以用for( var index in array)去遍历json结构
fuzeqiang 2013-10-12
  • 打赏
  • 举报
回复
递归可以遍历整个树,可是在取最大深度上我暂时想不到怎么搞
fuzeqiang 2013-10-12
  • 打赏
  • 举报
回复
引用 1 楼 bree06 的回复:
你说的深度是?把你的json格式发一下,要找什么节点说出来
{"name:""tt","children":[{"children":[{...}]},{...},{...}...]} children的层次是变化的
bree06 2013-10-12
  • 打赏
  • 举报
回复
你说的深度是?把你的json格式发一下,要找什么节点说出来
fuzeqiang 2013-10-12
  • 打赏
  • 举报
回复
引用 10 楼 bree06 的回复:
当然要把问题问清楚才能进行了,不然不是误导人吗?不知道你说的不靠谱是指什么?
看你写这么辛苦就把分给你吧,不过这个问题用循环是很难解决的。我说不靠谱,是因为我上午已经把问题解决了。当然我是在后台解决的。
闲去野鹤 2013-10-12
  • 打赏
  • 举报
回复
引用 5 楼 abstruct 的回复:
直接format成json对象获取children然后递归撒
+1
bree06 2013-10-12
  • 打赏
  • 举报
回复
var array = {'{':1,'}':-1},max=0,count=0;
     var json = "{'name':'t1','children':[{'children':[{'name':'t3'},{'name':'t4'},{'children':[{'name':'t5'},{'name':'t6'}]}]},{'name':'t2'}]}";
     for (var i = 0, length = json.length; i < length; i++) {
         var result = array[json.charAt(i)];
         if (!result) continue;
             count+=result;
         if (count>max) {
             max = count;
         }
     }
     if (count != 0) {
         alert('json format error!');
     } else {
         alert('max:'+max);
     }
当然要把问题问清楚才能进行了,不然不是误导人吗?不知道你说的不靠谱是指什么?

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧