2010-11-29 79 views
4

我有一個JSONArray,我需要獲取帶有這些值的hashmap,因爲我需要填充一個流,就像twitter做的一樣。 你建議做什麼?JSONArray到HashMap

+0

哦,是的,我forgott。 對不起:) – Fabian 2010-11-29 19:45:34

回答

11
HashMap<String, String> pairs = new HashMap<String, String>(); 
for (int i = 0; i < myArray.length(); i++) { 
    JSONObject j = myArray.optJSONObject(i); 
    Iterator it = j.keys(); 
    while (it.hasNext()) { 
     String n = it.next(); 
     pairs.put(n, j.getString(n)); 
    } 
} 

就是這樣的。

+1

謝謝!這適用於我的情況。只有編輯才能用`pairs.put ...'替換`pairs.add ...'。 – FilmiHero 2013-05-20 17:37:47

0

您可以使用Iterator獲取JsonArrays。或以這種方式使用

例如。 JSON

{ 
........ 
........ 

"FARE":[ //JSON Array 
    { 
    "REG_ID":3, 
    "PACKAGE_ID":1, 
    "MODEL_ID":9, 
    "MIN_HOUR":0 
    ....... 
    ....... 
    ....... 
    } 
     ] 
} 
HashMap<String, String> mMap= new HashMap<>(); 
for (int i = 0; i < myArray.length(); i++) { 

    JSONObject j = myArray.optJSONObject(i); 
    mMap.put("KEY1", j.getString("REG_ID")); 
    mMap.put("KEY2", j.getString("PACKAGE_ID")); 
    ............ 
    ............ 
} 

:爲了更好的編碼使用Iterator