2013-12-11 205 views
0

我有这样读嵌套对象

var JSON_Object = { 
"Diabites": [ 
    { 
     "Day1": [ 
      { 
       "Breakfast": [ 
        { 
         "food1": "Bread", 
         "food2": "Tea", 
         "food3": "Edd" 
        } 
       ] 
      }, 
      { 
       "Lunch": [ 
        { 
         "food1": "Bread", 
         "food2": "Tea", 
         "food3": "Edd" 
        } 
       ] 
      }, 
      { 
       "Dinner": [ 
        { 
         "food1": "Bread", 
         "food2": "Tea", 
         "food3": "Edd" 
        } 
       ] 
      } 
     ] 
    }, 
    { 
     "Day2": [ 
      { 
       "Breakfast": [ 
        { 
         "food1": "Bread", 
         "food2": "Tea", 
         "food3": "Edd" 
        } 
       ] 
      }, 
      { 
       "Lunch": [ 
        { 
         "food1": "Bread", 
         "food2": "Tea", 
         "food3": "Edd" 
        } 
       ] 
      }, 
      { 
       "Dinner": [ 
        { 
         "food1": "Bread", 
         "food2": "Tea", 
         "food3": "Edd" 
        } 
       ] 
      } 
     ] 
    } 
] 
} 

对象现在,我怎么能使用一些循环打印出来阅读本文件。我尝试以下

alert(JSON_Object.Diabites.length); // Return 1 
alert(JSON_Object.Diabites[0].Day1.length); // Return 3 

但也有不同的名称,如Day1, Day2, Day3 ....,所以我怎么能更改部分的循环,就像喜欢

for(var i=0; i<JSON_Object.Diabites.length;i++) 
{ 
    alert(JSON_Object.Diabites[i].Day1.length); 
} 

更新JSON对象

var JSON_Object = { 
"Diabites": [ 
    { 
     "Day1": [ 
      { 
       "Breakfast": [ 
        { 
         "food1": "Bread" 
        }, 
        { 
         "food2": "Tea" 
        }, 
        { 
         "food3": "Edd" 
        } 
       ] 
      }, 
      { 
       "Lunch": [ 
        { 
         "food1": "Bread" 
        }, 
        { 
         "food2": "Tea" 
        }, 
        { 
         "food3": "Edd" 
        } 
       ] 
      }, 
      { 
       "Dinner": [ 
        { 
         "food1": "Bread" 
        }, 
        { 
         "food2": "Tea" 
        }, 
        { 
         "food3": "Edd" 
        } 
       ] 
      } 
     ] 
    }, 
    { 
     "Day2": [ 
      { 
       "Breakfast": [ 
        { 
         "food1": "Bread" 
        }, 
        { 
         "food2": "Tea" 
        }, 
        { 
         "food3": "Edd" 
        } 
       ] 
      }, 
      { 
       "Lunch": [ 
        { 
         "food1": "Bread" 
        }, 
        { 
         "food2": "Tea" 
        }, 
        { 
         "food3": "Edd" 
        } 
       ] 
      }, 
      { 
       "Dinner": [ 
        { 
         "food1": "Bread" 
        }, 
        { 
         "food2": "Tea" 
        }, 
        { 
         "food3": "Edd" 
        } 
       ] 
      } 
     ] 
    } 
] 
}; 
+0

[访问/进程(嵌套)对象,数组或JSON的可能重复](http://stackoverflow.com/questions/11922383/access-process-nested-objects-arrays-or-json)和[如何做我列举了一个JavaScript对象的属性?](http://stackoverflow.com/q/85992/218196)。 –

+1

请注意,该问题有**没有**与JSON完全相关。这是关于如何在JavaScript中处理数组/对象。 *您如何获得数据(例如,通过JSON)与问题无关。 –

回答

1

如果你想循环一个JSON的键,你可以这样做:

for(var key in JSON_Object.Diabites[0]){ 

    //key will be Day1,Day2 etc. 
    alert(JSON_Object.Diabites[0][key].length); 

} 

但在共享您的JSON结构,你必须使用

for(var i=0;i<JSON_Object.Diabites.length;i++) { 

    for(var key in JSON_Object.Diabites[i]) { 

     //key will be Day1,Day2 etc. 
     alert(key); 
     alert(JSON_Object.Diabites[i][key].length); 

    } 

} 

here is a working fiddle如果你有兴趣。

+0

嘿,这是非常有用的,但我在我的json对象之前犯了一个小错误,现在我更新了我的问题,你可以再看看吗? – Blu