弱弱的问下

huangchao2011 2013-01-24 11:23:10
一个json,然后我不知道他的数据结构,怎样才能完美的遍历循环它,还有就是如何得到它嵌套的层次?求实例,求关键代码
...全文
231 6 点赞 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
fzfei2 2013-01-24
关键是判断类型,是否递归

var d=[
   {a:{aa:1,bb:"2",cc:{xx:55}},
   b:{aa:1,bb:"2"}
  },
  999
];

function getType(o){
  var t=typeof o;
  return  t=='object'?( t?'object':'null'):t;
}
function forJson(o){
  var t=getType(o);
  if(t=='object'){
    for(var k in o) { forJson(o[k])
  }else
    alert( o+'' );
}
  • 打赏
  • 举报
回复
fzfei2 2013-01-24
#1 多了个 { ,重发一下


var d=[
   {a:{aa:1,bb:"2",cc:{xx:55}},
   b:{aa:1,bb:"2"}
  },
  999
];
 
function getType(o){
  var t=typeof o;
  return  t=='object'?( t?'object':'null'):t;
}
function forJson(o){
  var t=getType(o);
  if(t=='object'){
    for(var k in o) forJson(o[k]);
  }else
    alert( o+'' );
}
  • 打赏
  • 举报
回复
xiaofan_sap 2013-01-24
json 首先是一个对象,然后对象还有可能是数组。 对于数组 的判断:

function isArray(obj){
if(typeof obj =='object'){
var isarr=obj.constructor.toString().match(/array/i);
return (isarr!=null)
}
}
然后在遍历对象:
for(var pro in jsonObj){
var proValue=jsonObj[pro];
if(!isArray(proValue)){
直接应用 proValue
}else
{
  for(var i=0;i<proValue.length;i++){
    利用 proValue[i]取值
}
}
}
  • 打赏
  • 举报
回复
似梦飞花 2013-01-24
for(var i in){ ... 判断obj[i]的类型 如果是object递归 试试 }
  • 打赏
  • 举报
回复
乃刀的青春 2013-01-24
也需要知道.
  • 打赏
  • 举报
回复
相关推荐
发帖
JavaScript
加入

8.5w+

社区成员

Web 开发 JavaScript
申请成为版主
帖子事件
创建了帖子
2013-01-24 11:23
社区公告
暂无公告