2014-06-18 23 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() 

返回对象中字符串名称的迭代器。