Thursday, 10 April 2014

Android JSON Parsing Tutorial


Datalist.java

package com.example.simplejsonparsing;

public class Datalist {   
    public String name;
}

JSONfunctions.java

package com.example.simplejsonparsing;

import java.io.BufferedReader;
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.JSONException;
import org.json.JSONObject;
import android.util.Log;
public class JSONfunctions
{
    public static JSONObject getJSONfromURL(String url)
    {
        InputStream is = null;
        String result = null ;
        JSONObject jArray = null;
        try
        {
                HttpClient httpclient = new DefaultHttpClient();
                HttpGet httpget= new HttpGet(url);
                HttpResponse response = httpclient.execute(httpget);
                HttpEntity entity = response.getEntity();
                is = entity.getContent();
        }
        catch(Exception e)
        {
                Log.e("log_tag", "Error in http connection "+e.toString());
        }
        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());
        }
        try
        {          
             jArray = new JSONObject(result);                                                   
        }
        catch(JSONException e)
        {
                Log.e("jArray................", "Error parsing data "+e.toString());
        }
   
       return jArray;
    }
}

 MainActivity.java

 package com.example.simplejsonparsing;

import java.util.ArrayList;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.view.Menu;

public class MainActivity extends Activity {

    public static void responces(Context conn,ArrayList<Datalist> arr){                       
    }   
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
               
        int no=1;
        String url="your json url type;
        new search(MainActivity.this,url,no).execute();
    }
}

 search.java

 package com.example.simplejsonparsing;

import java.util.ArrayList;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;

public class search extends AsyncTask < String , Integer , Long > {

     private ProgressDialog      progressDialog;
        private Context             targetCtx ;
        public JSONObject json;
     
         Context conn;
        
         ArrayList<Datalist> arry_networkdata=null;
               
         String url_data;
         int no,status;

         public search ( Context context,String data,int no) {
                this.targetCtx = context ;
                conn=context;               
                url_data=data;
                this.no=no;              
                progressDialog = new ProgressDialog ( targetCtx ) ;
                progressDialog.setCancelable ( false ) ;
                progressDialog.setMessage ( "Please wait..." ) ;
                progressDialog.setIndeterminate ( true ) ;                      
         }        
         public search ( Context context,String data,int no,int status) {
                this.targetCtx = context ;
                conn=context;               
                url_data=data;
                this.no=no;
                this.status=status;
                progressDialog = new ProgressDialog ( targetCtx ) ;
                progressDialog.setCancelable ( false ) ;
                progressDialog.setMessage ( "Please wait..." ) ;
                progressDialog.setIndeterminate ( true ) ;                      
         }        
         @Override
            protected void onPreExecute ( ) {
                         
                progressDialog.show () ;              
            }
            @Override
            protected Long doInBackground (String ... params) {
             
                 json=JSONfunctions.getJSONfromURL(url_data);
                 return null ;
            }
            @SuppressWarnings("static-access")
            @ Override
            protected void onPostExecute ( Long result ) {
              
                if(no==1){
try {
                           JSONObject tempp=json.getJSONObject("responseData");
                           JSONArray event_json=tempp.getJSONArray("results");
                          
                           for(int i=0;i<event_json.length();i++)
                            {    
                            
                            if(arry_networkdata == null)
                         {
                                arry_networkdata = new ArrayList<Datalist>();
                         }
                            Datalist con=new Datalist();
               
                 JSONObject temp= event_json.getJSONObject(i);
                
                 con.name=temp.getString("name");

                 arry_networkdata.add(con);
                                
                                     }
                                                      
                   MainActivity.responces(conn, arry_networkdata);
                                                                  
                    } catch (JSONException e) {
                                           
                        e.printStackTrace();
                    }
                    }               
                progressDialog.dismiss ( ) ;
            } 
}

No comments:

Post a Comment