永发信息网

js遍历多层json

答案:2  悬赏:10  手机版
解决时间 2021-12-31 14:39
[{"a":
[{"b":
[{"c":"one"},{"d":"1"}]
}],
[{"b":
[{"c":"two"},{"d":"2"}]
}],
[{"b":
[{"c":"three"},{"d":"3"}]
}]
}]
取每个"c"的值,应该怎么遍历?
最佳答案
我看了下你的数据有问题,'a'的值放了3个数组,这肯定是错的,应该在3个数组外面套上一层[],正确的数据结构应该是这样的。
[
{"a":
[
[
{"b":
[{"c":"one"},{"d":"1"}]
}
],
[
{"b":
[{"c":"two"},{"d":"2"}]
}
],
[
{"b":
[{"c":"three"},{"d":"3"}]
}
]
]
}
]
遍历代码如下:
for (var i = 0; i < arr.length; i++) {
for (var j = 0; j < arr[i]['a'].length; j++) {
// 做你需要的操作对c值
console.log(arr[i]['a'][j][0]['b'][0]['c']);
}
}
如果还有问题请像我提问,前端相关资料。
全部回答
你这里的jsonstr本身就已经是对象了,而json只是字符串,也就是说对方传递过来的字符串而已。 应该写成 var jsonstr = "{qiyi:'mp4',tudou:'3gp',youku:'mp4'}"; 这样可以表示jsonstr是一个字符串,而现在要jsonstr去执行一下就可以了! 如: var c = eval(jsonstr); 然后就可以调用了!如c.qiyi等等。不过这里不太好理解的,eval就是将jsonstr字符串当指令执行了,将执行结果传递给c而已。换一句方式可能会更好的理解的! eval(" var c = "+jsonstr+";"); 也就是说重新组合一个语句,这样可以直接使用c.qiyi了! 但其实是一样的道理的,只不过很少人会用到第二种!因为如果eval没有顺利执行时,第二种会出现错误,而第一种则会出现undefined的结果,第一种与第二种的区别就是不管是否空值,第一种c对象是存在的!而第二种却未必见得!第二种方案下,执行了一个语句,然后就感觉“凭空”开始使用一个对象了!然后这样虽是不好,其中是说明下边的语句都依赖于eval这样的一个细节语句,所以不是很多的! 也就是说: var c = eval("{qiyi:'mp4',tudou:'3gp',youku:'mp4'}"); 就是将json执行后的结果。由此可以看出你对数据传递上还有些不理解的!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
-progress you have made this year! ---Than
别克凯越机油多少公里换一次
费县民政局婚姻登记处在什么地方啊,我要处理
指纹手机有哪些
宜人贷在网上申请真的是0.78的利息吗
我的名字有个‘甜’字,急需一个英文名
报考教师资格证审核通过网上缴费不上什么原因
邹城市民政局婚姻登记处地址在哪?我要去那里
涂过油漆的木板上怎么贴墙纸!
沂南县民政局婚姻登记处在什么地方啊,我要处
如图,已知D、E在△ABC的边上,DE∥BC,∠B=6
淘宝首单有什么优惠
买过直销基金的建行卡(含基金卡)如何销户
单选题Hishometownis________thenortheasto
临沭县民政局婚姻登记处办公位置在哪啊?好找
推荐资讯
宣传单设计的要求有哪些?
华灯初上的意思
单选题下列哪项是日本制造九一八事变的借口A.
360理财的起息日期是什么意思
小米手机字体怎么变大
怎么从松田职业学院去广州东高铁站?
单选题历史表明,每一次大的危机常常伴随着一
如何用酷狗唱歌,怎么设置?
澳门的交通规则是右侧通行还是左侧通行啊?
有谁知道郑州各个家乐福的地址?
王刘庄西村委会地址有知道的么?有点事想过去
有一个韩国女团拍的MV 在银行里抢钱 好像是猫
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?