flipkart

Tuesday, July 15, 2014

JSON parsing in Android application

Today i will explain how to parse JSON (Java Script Object Notation) in android application.
Following file my source code

MainActivity.java
  1. package com.example.jsonparcer;

    import java.io.BufferedReader;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import org.json.JSONObject;
    import android.app.Activity;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.Menu;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.TextView;

    public class MainActivity extends Activity {

        BufferedReader bReader = null;
        TextView name,date,hours;
        Button data;
     
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);
    name=(TextView) findViewById(R.id.name);
    date=(TextView) findViewById(R.id.date);
    hours=(TextView) findViewById(R.id.hours);
    data=(Button) findViewById(R.id.data);
    data.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
    try {


    InputStream work = getApplicationContext().getResources()
                   .openRawResource(R.raw.work);

    bReader=new BufferedReader(new InputStreamReader(work));
    StringBuilder quesString = new StringBuilder();
            String aJsonLine = null;
            while ((aJsonLine = bReader.readLine()) != null) {
                    quesString.append(aJsonLine);
            }
           
            Log.d(this.getClass().toString(), quesString.toString());
            String workjson=quesString.toString();
            JSONObject quesObj = new JSONObject(quesString.toString());
            JSONObject TimeTable  = quesObj.getJSONObject("TimeTable");
            name.append(TimeTable.getString("name"));
            date.append(TimeTable.getString("date"));
            hours.append(TimeTable.getString("time"));
           
    } catch (Exception e){
             
           } finally {
                       try {
                               bReader.close();
                       } catch (Exception e) {
                               Log.e("", e.getMessage().toString(), e.getCause());
                       }

           }

    }
    });



    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
    }

    }
AndroidManifest.xml

  <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.example.jsonparcer"
  android:versionCode="1"
  android:versionName="1.0" >

  <uses-sdk
  android:minSdkVersion="8"
  android:targetSdkVersion="19" />

  <application
  android:allowBackup="true"
  android:icon="@drawable/ic_launcher"
  android:label="@string/app_name"
  android:theme="@style/AppTheme" >
  <activity
  android:name="com.example.jsonparcer.MainActivity"
  android:label="@string/app_name" >
  <intent-filter>
  <action android:name="android.intent.action.MAIN" />

  <category android:name="android.intent.category.LAUNCHER" />
  </intent-filter>
  </activity>
  </application>

</manifest>

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:paddingBottom="@dimen/activity_vertical_margin"
  android:paddingLeft="@dimen/activity_horizontal_margin"
  android:paddingRight="@dimen/activity_horizontal_margin"
  android:paddingTop="@dimen/activity_vertical_margin"
  tools:context=".MainActivity" >

  <TextView
  android:id="@+id/name"
  android:layout_width="wrap_content"
  android:textSize="20dp"
  android:layout_height="wrap_content"
  android:text="@string/Employ" />

  <TextView
  android:id="@+id/date"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:textSize="20dp"
  android:layout_alignLeft="@+id/name"
  android:layout_below="@+id/name"
  android:layout_marginTop="23dp"
  android:text="@string/Date" />

  <TextView
  android:id="@+id/hours"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:textSize="20dp"
  android:layout_below="@+id/date"
  android:layout_marginTop="26dp"
  android:text="@string/Time" />

  <Button
  android:id="@+id/data"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_alignParentBottom="true"
  android:layout_centerHorizontal="true"
  android:layout_marginBottom="126dp"
  android:text="@string/Data" />

</RelativeLayout>


strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>

  <string name="app_name">Jsonparcer</string>
  <string name="action_settings">Settings</string>
  <string name="hello_world">Hello world!</string>
  <string name="Employ">Ename :</string>
  <string name="Date">Date :</string>
  <string name="Time">WHours :</string>
  <string name="Data">Data</string>

</resources>

work.txt

{
  "TimeTable":{
  "name":"Vamsi",
  "date":"8-07-2014",
  "time":"8hours"
  }
}

Above codes are my source code for parsing json object using android . After running above code following screenshot will be generated


After button pressing it will retrieve data from work.txt next it will show using Textview on screen




Monday, July 7, 2014

Creating JSON file programitically

JSON stands for Java Script Object Notation. It is user for data saving .Today this post explain creating JSON file and writing values inside file using android programming.


MainActivity.java


 package com.example.jsonwriter;

import org.json.JSONException;
import org.json.JSONObject;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
JSONObject object = new JSONObject();
 try {
   object.put("name", "vamsi krishna");
   object.put("score", new Integer(44));
   object.put("current", new Double(40));
   object.put("nickname", "vk");
 } catch (JSONException e) {
   e.printStackTrace();
 }
 System.out.println("------"+object);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

}

AndroidManifest.xml, layout file are same after creating project change accordingly as your date in MainActivity class  

After running above my application it will give following screenshots


Above picture logcat showing out of application(Green color lines)