2013-05-03 90 views
1

我已經尋找了一個解決方案,但一直未來。我有以下的JSON:json沒有陣列的內部對象

{ 
    "objects" : 
    { 
     "a" : 
     { 
     "a1" : { "value1" : "1" } 
     "a2" : { "value2" : "2" } 
     }, 
     "b" : 
     { 
     "b1" : { "value1" : "1" } 
     "b2" : { "value2" : "2" } 
     } 
    } 
} 

所以(假設這是在var JSONObject的代表),如果我知道所有的對象名字,正從A1數值1是:

jsonObject.objects.a.a1.value1 

問題我遇到的是,我不知道內部對象的名稱。這可能是

{ 
    "objects" : 
    { 
     "ax7634" : 
     { 
     "a1" : { "value1" : "1" } 
     "a2" : { "value2" : "2" } 
     }, 
     "b78tgf" : 
     { 
     "b1" : { "value1" : "1" } 
     "b2" : { "value2" : "2" } 
     } 
    } 
} 

我會說這是不好形成JSON數據,以及對象應該是一個數組。但我只能用我處理的手牌打球。所以我的問題是,如果我不知道內部對象的名稱,是否有辦法「發現」它們或引用它們?有沒有一個.child(n)方法或某些會給我第n個孩子的方法?

+0

使用的是該Java?然後標記它。 – leppie 2013-05-03 19:50:46

+0

鑰匙沒有保證的順序,所以你必須得到所有的鑰匙,排序他們,然後得到第n個鑰匙。 – Blender 2013-05-03 19:52:34

+0

是的,我不介意他們進來的順序;如果我可以訪問它們,那麼我可以將它們排序。我只是不知道如何訪問它們,因爲我不知道它們的名字,而且它們不在數組中。 – zeusalmighty 2013-05-03 20:09:54

回答

1

你需要在循環

for(var key in objects){ 
    if (objects.hasOwnProperty(key)){ 
     objects[key]; // ax7364 in first iteration 
    } 
} 
+0

aha。謝謝。 – zeusalmighty 2013-05-03 20:11:49