JSON নিয়ে কাজ করার জন্য GSON দারুণ একটি লাইব্রেরী। এটি JSON কে অবজেক্টে কনভার্ট করে বা অবজেক্টকে JSON এ কনভার্ট করে দেয়। সিম্পল একটা প্রজেক্ট তৈরি করে আমরা দুইটা প্রসেসই দেখব।
তার জন্য আমাদের activity_main এ দুইটা বাটন এবং দুইটা টেক্সট ভিউ তৈরি করব। একটা হচ্ছে JSON to Java Object এর জন্য। এবং আরেকটা Object to JSON এর জন্য। activity_main:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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="me.jakir.gson.MainActivity"
android:orientation="vertical">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/button1"
android:text="Object to JSON" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/jsonView"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/button2"
android:text="JSON to Object" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/objectView" />
</LinearLayout></pre>
GSON লাইব্রেরী আমাদের প্রজেক্ট যুক্ত করার জন্য আমাদের App ফোল্ডারে থাকা build.gradle ফাইলের মধ্যে dependencies এর মধ্যে নিচের dependencie টা যুক্ত করে দিব। এরপর সিঙ্ক করে নিলেই আমাদের প্রজেক্টে GSON লাইব্রেরী যুক্ত হয়ে যাবে।
compile 'com.google.code.gson:gson:2.2.4'
আমরা Friend.java নামে একটি ক্লাস তৈরি করব। যেখানে মেম্বার ভ্যারিয়েবল হিসেবে থাকবে name এবং email. এবং Getter এবং Setter যুক্ত করে দিব। Friend.java:
public class Friend {
private String name;
private String email;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString()
{
return "Friends [name=" + name + ", Email=" + email ;
}
}
অবজেক্টকে JSON এ কনভার্ট করতে রয়েছে toJson() মেথড। আর Object to JSON এ কনভার্ট করতে হয়েছে fromJson(). নিছে MainActivity.java:
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import com.google.gson.Gson;
public class MainActivity extends AppCompatActivity {
Button button1, button2;
TextView jsonView, objectView;
Gson gson = new Gson();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button1 = (Button) findViewById(R.id.button1);
button2 = (Button) findViewById(R.id.button2);
jsonView = (TextView) findViewById(R.id.jsonView);
objectView = (TextView) findViewById(R.id.objectView);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Friend friend = new Friend();
friend.setName("Elon Musk");
friend.setEmail("[email protected]");
//Object to JSON
jsonView.setText(gson.toJson(friend));
}
});
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// JSON to Object
objectView.setText(String.valueOf((
gson.fromJson("{\"email\":\"[email protected]\",\"name\":\"Elon Musk\"}",
Friend.class))));
}
});
}
}
- কোড গুলো পাওয়া যাবে গিটহাবে। বা ড্রপবক্সেও কোড গুলো পাওয়া যাবে। ড্রপবক্স একাউন্ট না থাকলেএখানে ক্লিক করে খুলে নিতে পারেন।
- অ্যান্ড্রয়েড নিয়ে অন্য সব গুলো লেখা।
ভাইয়া, আপনার সাথে কন্টাক্ট করার মাধ্যম কি ওয়েবে বা সামনাসামনি …
আপনার ওয়েবসাইটে তো contact এর কোন অপশনই পাচ্ছি নাহ তাই কমেন্টই লিখতে বাধ্য হলাম 🙂
ফেবু তে ম্যাসেজ দিছি কিন্তু সেটা মনে হয় আপনার ফিল্টারে জমা হয়ে আছে ।
গতদিন একটা ইভেন্টে দেখা হল কিন্তু আপনাকে জিজ্ঞাসা করার আগেই আর আপনাকে খুজে পাই নাই । :'( :'(
ধন্যবাদ
ক্ষমা করবেন কমেন্টে এগুলা লেখার জন্যে !
খুশি হব যদি আমার উত্তর টা আমার মেইল এই দেন তো 🙂
mail[at]jakir.me তে যোগাযোগ করতে পারেন।
Vi ami apnar sathay dakha kortay ci,but kivabay kothay ,ba apnar office kothay janiña akhon ki korbo….