2010-11-29 47 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