2016-10-23 12 views
-2

現在、Iteratorループを使用してJSONオブジェクトを解析しています。小規模から中規模のデータセットでうまく動作します。しかし、データセットが増加すると、パフォーマンスの時間も向上します。例えば:ForループまたはWhileループのJSONObjectの解析方法

//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++; 
 
      }

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.

そこらのためか、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); 
関連する問題