弱弱的问下

huangchao2011 2013-01-24 11:23:10
一个json,然后我不知道他的数据结构,怎样才能完美的遍历循环它,还有就是如何得到它嵌套的层次?求实例,求关键代码
...全文
263 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
  • 打赏
  • 举报
回复
也需要知道.

87,921

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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