2011-12-24 39 views
1

私はJavaのプログラミングやAndroid向けのプログラミングには新しく、多くのチュートリアルを見てきましたが、JSONObjectをループしてクラスに設定する方法についてはまったく気付きません。 JSONデータのJSONオブジェクトをループに変換して配列に変換する

例:私は限り、このよう...

ArrayList<Episode> episodeList = new ArrayList<Episode>(); 
      JSONObject data = new JSONObject(); 
      for(int i = 0; i < 2; i++) { 
       try { 
        data = response.getJSONObject("data"); 
        episodeList.add(new Episode(data)); 
       } catch (JSONException e) { 
        e.printStackTrace(); 
       } 
      } 
      return null; 
      // for each entry create new episode :) 
     } else { 
      return null; 
     } 
+1

A [SSCC](http://sscce.org /) - 例は素晴らしいでしょう。なぜなら、私たちは 'response'が何であるかを知りませんし、なぜfor-loopを持っているのかも知りません。 – Pit

+0

解決策を見つけました。下記を参照してください。とにかくありがとう:) – PvdL

+0

問題はありません、うれしく自分でそれをやった! – Pit

答えて

3

がそれを発見:)

try { 
      response = new JSONObject(con.query("history", parameters)); 
      JSONArray data = response.getJSONArray("data"); 
      for(int i = 0; i < data.length(); i++) { 
       try { 
        episodeList.add(new Episode((JSONObject) data.get(i))); 
       } catch (JSONException e) { 
        e.printStackTrace(); 
       } 
      } 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
来た

public Episode(JSONObject obj) { 
     try { 
      this.id = Integer.parseInt(obj.getString("episode").toString()); 
      this.tvId = Integer.parseInt(obj.getString("tvdbid").toString()); 
      this.resource = obj.getString("resource").toString(); 
     } catch (NumberFormatException e) { 
      e.printStackTrace(); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
    } 

を:私が作った http://sickbeard.com/api/#history

クラス

1
//   is = entity.getContent(); 
ArrayList<String> myList = new ArrayList<String>(); 


       //convert response to string 
      try{ 

       BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8); 
       StringBuilder sb = new StringBuilder(); 
       String line = null; 
       while ((line = reader.readLine()) != null) { 
        sb.append(line + "\n"); 
       } 
       is.close(); 
       result = sb.toString(); 


      } catch (Exception e) { 
       Log.e("log_tag", "Error converting result "+e.toString()); 
      } 




      //parse json data 
      try{ 
        jArray = new JSONArray(result); 


        for(int i=0;i<jArray.length();i++){ 

         json_data = jArray.getJSONObject(i); 

         myList.add(json_data.getString("id")); 
         Log.i("log_tag","id: " + json_data.getString("id")); 
        } 

      } 
      catch(JSONException e){ 
        Log.e("log_tag", "Error parsing data "+e.toString()); 
      } 


return myList; 

//その後、uはこれはmyListを受け取ることができます。

ArrayList<String> get_data_id = postData(); 
// get_data_id = myList 
get_data_id.get(0) - it is first element, 
get_data_id.get(1) - it is second element 

.... 例

json data is : [{"id":"1"},{"id":"2"},{"id":"3"},{"id":"4"},{"id":"5"},{"id":"6"}] 
         {in loop} myList.add(json_data.getString("id")); 
get_data_id.get(0) = 1 
get_data_id.get(1) = 2 
get_data_id.get(2) = 3 
.......... 
:) 

グッドラック

関連する問題