2016-10-23 97 views
-2

當前我正在使用Iterator循環來解析我的JSON對象。適用於中小型數據集。但是當我的數據集增加時,表現時間也會增加。例如:如何使用For循環或While循環解析JSONObjects

//groupedData is my JSONObject dataset 
 
Iterator<String> iter = groupedData.keys(); 
 
      int i = 0; 
 
      while (iter.hasNext()) { 
 
       String key = iter.next(); 
 
       try { 
 
        Object value = groupedData.get(key); 
 
        //add the value to an entry 
 
        values_1.add(new Entry(Float.valueOf(String.valueOf(value)), i)); 
 
        //add key to an arraylist 
 
        labels_1.add(key); 
 
       } catch (JSONException e) { 
 
        // Something went wrong! 
 
       } 
 
       i++; 
 
      }

我使用了這些迭代環路,用於像4個更多種不同的數據集。它最終將永無止境地循環一切。

挖後,我得到了這個導致which showed results show that the Iterator mechanism is the slowest method to loop through a list. There's not much performance difference between the For and the While loop.

那麼,有沒有使用for或者while通過JSON對象循環更好的辦法?

我JSONObject的數據是這樣的:

{ 
 
    "Admin": 19900, 
 
    "James": 2000, 
 
    "Steve": 1501, 
 
    "Linda": 3840, 
 
    "Grace": 2170, 
 
    "Jeff": 1200, 
 
    "Carolle": 350 
 
}

有什麼建議?

+0

你有沒有嘗試使用'GSON'?我建議你試試看。 –

+0

我還沒試過,介意分享一個例子? –

+0

不要製作你自己的JSON解析器,那裏有類似GSON或JACKSON的庫。 –

回答

0

使用GSON解析JSON

試試這個,

Type type = new TypeToken<Map<String, String>>(){}.getType(); 
Map<String,String> map = new Gson().fromJson(groupedData.toString(), type);