Monday, 21 April 2014

JSON Parsing Using Thread

 Ravi - Android Hive implemented using Asyn Task . but i have implemented it using Thread and Handlers
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
 import java.io.BufferedReader;  
 import java.io.IOException;  
 import java.io.InputStream;  
 import java.io.InputStreamReader;  
 import org.apache.http.HttpEntity;  
 import org.apache.http.HttpResponse;  
 import org.apache.http.client.HttpClient;  
 import org.apache.http.client.methods.HttpGet;  
 import org.apache.http.impl.client.DefaultHttpClient;  
 import org.json.JSONArray;  
 import org.json.JSONException;  
 import org.json.JSONObject;  
 import android.app.Activity;  
 import android.app.ProgressDialog;  
 import android.os.Bundle;  
 import android.os.Handler;  
 import android.os.Message;  
 import android.util.Log;  
 import android.widget.TextView;  
 public class MainActivity extends Activity {  
      TextView tv;  
      StringBuilder sb;  
      BufferedReader br;  
      InputStream is;  
      String jsn;  
      HttpEntity httpEntity = null;  
      ProgressDialog progDialog;  
      HttpClient httpClient;  
      HttpResponse response;  
      HttpGet get;  
      String url = "http://api.androidhive.info/contacts/";  
      @Override  
      protected void onCreate(Bundle savedInstanceState) {  
           super.onCreate(savedInstanceState);  
           setContentView(R.layout.activity_main);  
           tv = (TextView) findViewById(R.id.textView1);  
           getData();  
      }  
      private void getData() {  
           progDialog = ProgressDialog.show(MainActivity.this, "please Wait ", "Loading....");  
           Thread background = new Thread(new Runnable() {  
                @Override  
                public void run() {  
                     // TODO Auto-generated method stub  
                     try {  
                          httpClient = new DefaultHttpClient();  
                          get = new HttpGet(url);  
                          response = httpClient.execute(get);  
                          httpEntity = response.getEntity();  
                          is = httpEntity.getContent();  
                          br = new BufferedReader(new InputStreamReader(is));  
                          sb = new StringBuilder();  
                          String line = null;  
                          while ((line = br.readLine()) != null) {  
                               sb.append(line);  
                          }  
                          br.close();  
                          jsn = sb.toString();  
                          handler.sendEmptyMessage(0);  
                     } catch (IOException e) {  
                          // TODO Auto-generated catch block  
                          e.printStackTrace();  
                          handler.sendEmptyMessage(1);  
                     } catch (Throwable e) {  
                          // just end the background thread  
                          Log.i("ThreadHandler", "Thread exception " + e);  
                          handler.sendEmptyMessage(1);  
                     }  
                }  
           });  
           background.start();  
      }  
      Handler handler = new Handler() {  
           @Override  
           public void handleMessage(Message msg) {  
                // TODO Auto-generated method stub  
                super.handleMessage(msg);  
                if (progDialog != null && progDialog.isShowing()) {  
                     progDialog.dismiss();  
                }  
                if (msg.what == 0) {  
                     try {  
                          if (jsn != null) {  
                               JSONObject jsonobj = new JSONObject(jsn);  
                               Log.d("obj ", jsonobj.toString());  
                               JSONArray arry = jsonobj  
                                         .getJSONArray("contacts");  
                               for (int i = 0; i <= arry.length(); i++) {  
                                    JSONObject temp = arry.getJSONObject(i);  
                                    Log.d("objects " + i, temp.toString());  
                                    String id = temp.getString("id");  
                                    String name = temp.getString("name");  
                                    String email = temp.getString("email");  
                                    JSONObject phone = temp  
                                              .getJSONObject("phone");  
                                    Log.d("phone ", phone.toString());  
                                    String mobile = phone.getString("mobile");  
                                    String home = phone.getString("home");  
                                    tv.append("id :" + id + "\n");  
                                    tv.append("Name : " + name + "\n");  
                                    tv.append("email :" + email + "\n");  
                                    tv.append("mobile :" + mobile + "\n");  
                                    tv.append("home :" + home + "\n\n\n");  
                               }  
                          }  
                     } catch (JSONException e) {  
                          // TODO Auto-generated catch block  
                          e.printStackTrace();  
                     }  
                } else if (msg.what == 1) {  
                }  
           }  
      };  
 }  

No comments:

Post a Comment