2013-01-13 71 views
-2

使用的JSONObject我有以下的Android的Java代碼:我如何在Android中

String json = "{\"Name_1\":1,\"Name_2\":0,\"Name_3\":0}"; 
JSONObject object = new JSONObject(json); 
String[] propertyNames = JSONObject.getNames(object); 
values = new String[propertyNames.length]; 
for (int i = 0; i < propertyNames.length; i++) { 
    values[i] = String.valueOf(object.get(propertyNames[i])); 
} 

,但我收到以下錯誤:該方法getNames(JSONObject)是未定義的類型JSONObject。 我能做些什麼來得到propertyNames

+2

爲什麼不看JavaDoc的? http://developer.android.com/reference/org/json/JSONObject.html – Ridcully

+0

「我能做些什麼來獲取propertyNames?」 - 使用'object.names()'NOT'getNames(...)',正如你發現的那樣,它是'JSONObject'的一個未定義的方法。還要注意,不是將'propertyNames'定義爲String [],而是使用'JSONArray'。 – Squonk

+0

那麼我將如何獲得值= {「1」,「0」,「0」} – user1759570

回答

2

爲什麼不看JavaDoc?它會告訴您有關keys()方法。

for (Iterator<String> it = object.keys(); it.hasNext();) { 
    String key = it.next(); 
    // ... 
} 

編輯:拿到鑰匙的數組:

List<String> keyList = new ArrayList<String>(); 
for (Iterator<String> it = object.keys(); it.hasNext();) { 
    String key = it.next(); 
    keyList.add(key); 
} 

String[] keyArray = keyList.toArray(new String[keyList.size()]); 
+0

Ridcully,如果我想要鍵是一個字符串數組怎麼辦? – user1759570

+0

您必須在我的示例中基於循環創建一個。迭代器構造在這裏並不提供簡單的解決方案,因爲它也用於結果在運行中生成並且未預先知道的情況。但是,您可以將循環過程中獲得的密鑰添加到列表中,然後調用列表的'toArray'方法。見編輯的答案。 – Ridcully