2013-04-22 49 views
0

我想從JSON格式讀取列表到Android Java中。在JSON中解析列表中沒有花括號在android-java中

可以使用getJSONarray()閱讀孩子。但無法讀取值消息電子郵件

似乎getJSONarray()不適用於我想要的。

是的,我使用getJSONObject兒童來提取消息。但是如何在獲取消息數組後提取個別值

{ 
    "children": [{ 
    "message": ["message1","message2","message3"], 
    "email": ["email1", 
       "email2"] 
    }, { 
    "message": ["message1", "message2", "message3"], 
    "email": ["email1", "email2"] 
    }] 
} 

我知道如何從中提取:

{ 
     "children": [{ 
        "message1": "message___1" 
        "message2": "message___2" 
        "message3": "message___3" 

      }] 
} 

而不是在它是所有在列表中。

回答

0

包裹起來試試下面的代碼:

for(int i=0; i<childrenArray.length(); i++) 
{ 
JSONObject childObj=childrenArray.getJSONObject(i); 
JSONArray messageArray=childObj.getJSONArray("message"); 
    for(int j=0; j<messageArray.length();j++ 
     { 
      //here get value from messageArray.getString(j) or messageArray.getJSONObject(j), whichever applicable 
     } 

JSONArray emailArray=childObj.getJSONArray("email"); 
    for(int k=0; k<emailArray.length();k++ 
     { 
      //here get value from emailArray.getString(k) or emailArray.getJSONObject(k), whichever applicable 
     } 

} 
1

你需要做的,一旦你已經有了一個「孩子」的JSONArray就是那麼一個單獨提取該JSONObjects一個像這樣:

for (int counter = 0; counter < childArray.length(); counter++) { 
    //Get the next item 
    JSONObject nextobj = childArray.getJSONObject(counter); 

然後你可以從提取您的消息和電子郵件陣列你的nextobj變量。這是因爲每個「消息」和「電子郵件」是不是從你的「孩子」 JSONArray直接訪問,他們在JSONObjects

+0

*是,我使用getJSONobject對孩子提取消息。但是如何在獲取消息數組後獲取單個值? – gizmoUb 2013-04-22 11:16:23

+0

我想從列表中提取值。並且這些值在它們上沒有明顯使用getJSONObject的索引。 – gizmoUb 2013-04-22 11:23:48