2017-01-19 10 views
-1

私はJavaでマップの配列をコーディングするのに苦労しています。
以下の疑似コードは、私が何をしようとしているかを示しています。Javaでマップの配列をコーディングする

Dim maparray(mapnumber) As Map 
Maparray(0) = Map1 
Maparray(1) = Map2 

など。 Javaでこれをどうすればできますか?私は配列のサイズを知っているので、動的配列を持つ必要はありません。私の現在のJavaコードはここにある :forループの内側の終わりに

JSONArray activityjson = new JSONArray(jsonObject.getString("activity")); 
Map<String, String> activity = new HashMap<String, String>(); 

for (int i = 0; i < activityjson.length(); i++) { 
    JSONObject obj = (JSONObject) activityjson.get(i); 

    activity.put("ID", obj.get("ActivityID").toString()); 
    activity.put("Name", obj.get("ActivityName").toString()); 
    activity.put("Desc", obj.get("ActivityDesc").toString()); 
    activity.put("Req", obj.get("ActivityReq").toString()); 
    activity.put("Start", obj.get("StartDate").toString()); 
    activity.put("End", obj.get("EndDate").toString()); 
    activity.put("Location", obj.get("Location").toString()); 
    activity.put("Points", obj.get("AwardPoints").toString()); 

} 

、I [i]はmaparrayに活動の現在の状態を追加します。 ありがとう8)

+1

... – CraigR8806

+2

あなたのコードにHashMapの実際の配列を作成することによって...または、実際には、私はハッシュマップをまったく使用せず、JSON配列をGsonまたはJacksonを使用してJavaオブジェクトのリストに逆シリアル化します。 –

答えて

1

これは、配列ではなくリストを使用するのが最適です。私は開始したい

あなたはそれについてあなたが道を進んで頭痛の混乱に自分自身を取得している、プロパティとしてこれらのキーのすべてを持つクラスを作成したほうが良いでしょう
JSONArray activityjson = new JSONArray(jsonObject.getString("activity")); 
    List<Map<String, String>> data = new ArrayList<Map<String, String>>(); 
    for (int i = 0; i < activityjson.length(); i++) { 
    Map<String, String> activity = new HashMap<String, String>(); 
          JSONObject obj = (JSONObject) activityjson.get(i); 

          activity.put("ID", obj.get("ActivityID").toString()); 
          activity.put("Name", obj.get("ActivityName").toString()); 
          activity.put("Desc", obj.get("ActivityDesc").toString()); 
          activity.put("Req", obj.get("ActivityReq").toString()); 
          activity.put("Start", obj.get("StartDate").toString()); 
          activity.put("End", obj.get("EndDate").toString()); 
          activity.put("Location", obj.get("Location").toString()); 
          activity.put("Points", obj.get("AwardPoints").toString()); 
          data.add(activity); 
         } 
// now access activity.get(0), activity.get(1), ... 
+0

'data.get( 1).get( "ID")toString() 'を呼び出して、リストからデータを取得します。私が望むのと全く同じように動作します。ありがとう! –

関連する問題