javascript - 获取具有未知名称Javascript的嵌套JSON的值
问题描述
我有一个深度嵌套的 JSON 对象,名称为任意值。我不知道前面的值。下面是一个简化的例子。我似乎想不出一种方法来获得我需要的价值
{
"bigJSON":{
"5":{
"3":[
{
"week":{
"name":"John",
"length":25
}
},
{
"week":{
"name":"John1",
"length":95
}
}
]
},
"6":{
"2":[
{
"week":{
"name":"John3",
"length":45
}
},
{
"week":{
"name":"Merlin",
"length":25
}
}
]
}
}
}
我需要从bigJSON['5']['3'] , bigJSON['6']['2']
etc 获取数组,但我无法5,3,6,2
提前知道 etc 的值。帮助将不胜感激。
解决方案
您可以使用for...in
循环来迭代对象的属性。根据您的数据结构,您似乎需要两个级别的迭代。
var data = {"bigJSON":{"5":{"3":[{"week":{"name":"John","length":25}},{"week":{"name":"John1","length":95}}]},"6":{"2":[{"week":{"name":"John3","length":45}},{"week":{"name":"Merlin","length":25}}]}}}
var getWeeks = function(data){
var weeks = []
for(var level1 in data.bigJSON){
for(var level2 in data.bigJSON[level1]){
weeks = weeks.concat(data.bigJSON[level1][level2])
}
}
return weeks;
}
console.log(getWeeks(data))
推荐阅读
- windows - 清除 cmd 和 windows-terminal 的键盘快捷键
- reactjs - React:渲染传入 Websocket 消息的数组
- android - 类型不匹配。必需:找到的上下文:在片段中
- c++ - 使用大型稀疏矩阵乘法的 Rcpp Armadillo 加速
- sql - 如何知道哪些元组不满足某个条件?
- javascript - 为什么 vue-router 不显示组件?
- python - Raspberry Pi Python 从路径运行程序
- python - JSONDecodeError:期望值:第 14 行第 34 列(字符 316),带有 JSON 和 discord.py
- html - Unity webGL 始终以页面高度为中心
- reactjs - react 中的 this.state 如何充当 Async 和 Await 函数?