2014-06-18 54 views
0

我有一個JSONObject包含一些JSONObjects如下:如何獲取JSONObject的元素?

"statistics": { 
    "John": { 
     "Age": "22", 
     "status": "married" 
    }, 
    "Ross": { 
     "Age": "34", 
     "status": "divorced" 
    } 
} 

現在我所知道的是對象名稱(統計),並且不知道這是元素數量或它的元素名稱那麼,是否有辦法解析這個Object,以便我可以得到它的元素並處理它(即John,Ross)?

+2

嘗試http://jackson.codehaus.org/ –

+2

您使用的是什麼JSON庫?目前還沒有Java的標準JSON API。 – Jesper

+0

它是org.json,但我沒有提到它使問題對人們開放,所以如果只有一個特定的庫可以做到這一點,我將使用它,因爲我不介意在那種情況下更改org.json –

回答

5
JSONObject json = new JSONObject(yourdata); 
String statistics = json.getString("statistics"); 
JSONObject name1 = json.getJSONObject("John"); 
String ageJohn = name1.getString("Age"); 

爲獲得這些項目的動態

JSONObject json = new JSONObject(yourdata); 
String statistics = json.getString("statistics"); 

for(Iteraor key=json.keys();key.hasNext();) { 
    JSONObject name = json.get(key.next()); 
    //now name contains the firstname, and so on... 
} 
+0

那麼,這工作,並給我每個包含的對象,但如何獲得這些對象的名稱? –

+0

是的。如示例中所示。 String key = key.next(); JSONObject name = json.get(key); Log.d(「data」,「key =」+ key +「和value =」+ json.toString()); –

2

您沒有指定要使用來表示JSON對象,該對象庫。通常有枚舉對象的屬性的方法。例如:

org.json.JSONObject.keys() 

返回對象中字符串名稱的迭代器。